From eb86ba780bc7e666338d767945e1f3acee7f8f2b Mon Sep 17 00:00:00 2001 From: Nathan Sutton Date: Wed, 9 Nov 2011 11:30:33 -0800 Subject: [PATCH] Adding a method to unmock Fog. Addresses issue #594 --- lib/fog/core/mock.rb | 4 +++ tests/core/mocking_tests.rb | 60 +++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 tests/core/mocking_tests.rb diff --git a/lib/fog/core/mock.rb b/lib/fog/core/mock.rb index 6847d56b5..6524bad28 100644 --- a/lib/fog/core/mock.rb +++ b/lib/fog/core/mock.rb @@ -6,6 +6,10 @@ module Fog @mocking = true end + def self.unmock! + @mocking = false + end + def self.mock? @mocking end diff --git a/tests/core/mocking_tests.rb b/tests/core/mocking_tests.rb new file mode 100644 index 000000000..9d3dcf661 --- /dev/null +++ b/tests/core/mocking_tests.rb @@ -0,0 +1,60 @@ +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.not_implemented').raises(Fog::Errors::MockNotImplemented) do + Fog::Mock.not_implemented + end + + +end