1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00

[ec2] add specs/mocks for named ingresses

This commit is contained in:
geemus (Wesley Beary) 2010-03-16 17:34:06 -07:00
parent 5e06297cd4
commit efa6a5b5ef
2 changed files with 32 additions and 15 deletions

View file

@ -35,15 +35,23 @@ module Fog
class Mock
# TODO: handle the GroupName/Source/Source case
def authorize_security_group_ingress(options = {})
if options['GroupName'] && options['SourceSecurityGroupName'] && options['SourceSecurityGroupOwnerId']
raise MockNotImplemented.new("Contributions welcome!")
else
response = Excon::Response.new
group = @data[:security_groups][options['GroupName']]
response = Excon::Response.new
group = @data[:security_groups][options['GroupName']]
group['ipPermissions'] ||= []
group['ipPermissions'] ||= []
if options['GroupName'] && options['SourceSecurityGroupName'] && options['SourceSecurityGroupOwnerId']
owner = Fog::AWS::Mock.owner_id
['icmp', 'tcp', 'udp'].each do |protocol|
group['ipPermissions'] << {
'groups' => [{'groupName' => options['GroupName'], 'userId' => owner}],
'fromPort' => 1,
'ipRanges' => [],
'ipProtocol' => protocol,
'toPort' => 65535
}
end
else
group['ipPermissions'] << {
'groups' => [],
'fromPort' => options['FromPort'],
@ -51,14 +59,13 @@ module Fog
'ipProtocol' => options['IpProtocol'],
'toPort' => options['ToPort']
}
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'return' => true
}
response
end
response.status = 200
response.body = {
'requestId' => Fog::AWS::Mock.request_id,
'return' => true
}
response
end
end

View file

@ -11,7 +11,7 @@ describe 'EC2.authorize_security_group_ingress' do
AWS[:ec2].delete_security_group('fog_security_group')
end
it "should return proper attributes" do
it "should return proper attributes for port based ingress" do
actual = AWS[:ec2].authorize_security_group_ingress({
'FromPort' => 80,
'GroupName' => 'fog_security_group',
@ -22,5 +22,15 @@ describe 'EC2.authorize_security_group_ingress' do
[false, true].should include(actual.body['return'])
end
it "should return proper attributes for named ingress" do
actual = AWS[:ec2].authorize_security_group_ingress({
'GroupName' => 'fog_security_group',
'SourceSecurityGroupName' => 'fog_security_group',
'SourceSecurityGroupOwnerId' => '254056571511'
})
actual.body['requestId'].should be_a(String)
[false, true].should include(actual.body['return'])
end
end
end