1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/tests/rackspace/requests/access_list_tests.rb
2011-08-16 22:22:24 -04:00

56 lines
2 KiB
Ruby

Shindo.tests('Fog::Rackspace::LoadBalancers | access_lists_tests', ['rackspace']) do
pending if Fog.mocking?
given_a_load_balancer_service do
given_a_load_balancer do
tests('success') do
@lb.wait_for { ready? }
tests("#create_access_rule(#{@lb.id}, '67.0.0.1','ALLOW')").succeeds do
@service.create_access_rule(@lb.id, '67.0.0.1', 'ALLOW').body
end
@lb.wait_for { ready? }
tests("list_access_rules").formats(ACCESS_LIST_FORMAT) do
data = @service.list_access_rules(@lb.id).body
returns(1) { data.size }
@access_list_id = data['accessList'].first['id']
data
end
@lb.wait_for {ready? }
tests("delete_access_rule(#{@lb.id}, #{@access_list_id}").succeeds do
@service.delete_access_rule(@lb.id, @access_list_id)
end
@lb.wait_for {ready? }
tests("delete_all_access_rules(#{@lb.id})").succeeds do
#This could be refactored once we can add multiple access rules at once
@service.create_access_rule(@lb.id, '67.0.0.2', 'ALLOW')
@lb.wait_for {ready? }
@service.create_access_rule(@lb.id, '67.0.0.3', 'ALLOW')
@lb.wait_for {ready? }
returns(2) { @service.list_access_rules(@lb.id).body['accessList'].size }
@service.delete_all_access_rules(@lb.id)
@lb.wait_for {ready? }
returns(0) { @service.list_access_rules(@lb.id).body['accessList'].size }
end
end
tests('failure') do
tests('create_access_rule(invalid ip)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
@service.create_access_rule(@lb.id, '', 'ALLOW')
end
tests('create_access_rule(invalid type)').raises(Fog::Rackspace::LoadBalancers::BadRequest) do
@service.create_access_rule(@lb.id, '10.10.10.10', 'ENABLED')
end
tests("delete_access_rule(#{@lb.id}, 0)").raises(Fog::Rackspace::LoadBalancers::NotFound) do
@service.delete_access_rule(@lb.id, 0)
end
end
end
end
end