1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/aws/requests/rds/subnet_groups_test.rb

48 lines
1.7 KiB
Ruby

Shindo.tests('AWS::RDS | subnet group requests', ['aws', 'rds']) do
# random_differentiator
# Useful when rapidly re-running tests, so we don't have to wait
# serveral minutes for deleted VPCs/subnets to disappear
suffix = rand(65536).to_s(16)
@subnet_group_name = "fog-test-#{suffix}"
vpc_range = rand(245) + 10
@vpc = Fog::Compute[:aws].vpcs.create('cidr_block' => "10.#{vpc_range}.0.0/16")
# Create 4 subnets in this VPC, each one in a different AZ
subnet_az = 'us-east-1a'
subnet_range = 8
@subnets = (1..4).map do
subnet = Fog::Compute[:aws].create_subnet(@vpc.id, "10.#{vpc_range}.#{subnet_range}.0/24",
'AvailabilityZone' => subnet_az).body['subnetSet'].first
subnet_az = subnet_az.succ
subnet_range *= 2
subnet
end
tests('success') do
subnet_ids = @subnets.map { |sn| sn['subnetId'] }.to_a
tests("#create_db_subnet_group").formats(AWS::RDS::Formats::CREATE_DB_SUBNET_GROUP) do
result = Fog::AWS[:rds].create_db_subnet_group(@subnet_group_name, subnet_ids, 'A subnet group').body
returns(@subnet_group_name) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['DBSubnetGroupName'] }
returns('A subnet group') { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['DBSubnetGroupDescription'] }
returns(@vpc.id) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['VpcId'] }
returns(subnet_ids.sort) { result['CreateDBSubnetGroupResult']['DBSubnetGroup']['Subnets'].sort }
result
end
tests("#describe_db_subnet_groups").formats(AWS::RDS::Formats::DESCRIBE_DB_SUBNET_GROUPS) do
Fog::AWS[:rds].describe_db_subnet_groups.body
end
end
@subnets.each do |sn|
Fog::Compute[:aws].delete_subnet(sn['subnetId'])
end
@vpc.destroy
end