Shindo.tests('Fog mocking', 'core') do before do @fog_was_mocked = Fog.mock? Fog.unmock! if @fog_was_mocked end after do Fog.mock! if @fog_was_mocked end tests('Fog.mock!') do tests('Fog.mock!').returns(true) do Fog.mock! end tests('Fog.mock? without Fog.mock!').returns(false) do Fog.mock? end tests('Fog.mock? with Fog.mock!').returns(true) do Fog.mock! Fog.mock? end tests('Fog.mocking? without Fog.mock!').returns(false) do Fog.mocking? end tests('Fog.mocking? with Fog.mock!').returns(true) do Fog.mock! Fog.mocking? end end tests('Fog::Mock.delay') do tests('Fog::Mock.delay').returns(1, "defaults to 1") do Fog::Mock.delay end tests('Fog::Mock.delay = 2').returns(2, "changes Fog::Mock.delay to 2") do Fog::Mock.delay = 2 Fog::Mock.delay end tests('Fog::Mock.delay = 0').returns(0, "changes Fog::Mock.delay to 0") do Fog::Mock.delay = 0 Fog::Mock.delay end tests('Fog::Mock.delay = -1').raises(ArgumentError) do Fog::Mock.delay = -1 end end tests('Fog::Mock.random_ip') do tests('Fog::Mock.random_ip').returns(true, "default to ipv4") do IPAddr.new(Fog::Mock.random_ip).ipv4? end tests('Fog::Mock.random_ip').returns(true, "explicit ipv4") do IPAddr.new(Fog::Mock.random_ip({:version => :v4})).ipv4? end tests('Fog::Mock.random_ip({:version => :v6})').returns(true, "changes to ipv6") do IPAddr.new(Fog::Mock.random_ip({:version => :v6})).ipv6? end tests('Fog::Mock.random_ip({:version => :v5})').raises(ArgumentError) do IPAddr.new(Fog::Mock.random_ip({:version => :v5})).ipv4? end end tests('Fog::Mock.not_implemented').raises(Fog::Errors::MockNotImplemented) do Fog::Mock.not_implemented end end