google-geo 1.0 → 2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +5 -0
- data/README +12 -8
- data/lib/google/geo.rb +10 -6
- data/test/fixtures/invalid_map_key.xml +10 -0
- data/test/fixtures/missing_address.xml +10 -0
- data/test/fixtures/server_error.xml +10 -0
- data/test/fixtures/success.xml +36 -0
- data/test/fixtures/success_with_multiple_addresses.xml +62 -0
- data/test/fixtures/too_many_queries.xml +10 -0
- data/test/fixtures/unavailable_address.xml +10 -0
- data/test/fixtures/unknown_address.xml +10 -0
- data/test/geo_test.rb +19 -5
- data/vendor/mocha-0.4.0/COPYING +3 -0
- data/vendor/mocha-0.4.0/MIT-LICENSE +7 -0
- data/vendor/mocha-0.4.0/README +35 -0
- data/vendor/mocha-0.4.0/RELEASE +98 -0
- data/vendor/mocha-0.4.0/Rakefile +126 -0
- data/vendor/mocha-0.4.0/examples/misc.rb +36 -0
- data/vendor/mocha-0.4.0/examples/mocha.rb +26 -0
- data/vendor/mocha-0.4.0/examples/stubba.rb +65 -0
- data/vendor/mocha-0.4.0/lib/mocha.rb +19 -0
- data/vendor/mocha-0.4.0/lib/mocha/any_instance_method.rb +35 -0
- data/vendor/mocha-0.4.0/lib/mocha/auto_verify.rb +113 -0
- data/vendor/mocha-0.4.0/lib/mocha/central.rb +35 -0
- data/vendor/mocha-0.4.0/lib/mocha/class_method.rb +62 -0
- data/vendor/mocha-0.4.0/lib/mocha/expectation.rb +295 -0
- data/vendor/mocha-0.4.0/lib/mocha/expectation_error.rb +6 -0
- data/vendor/mocha-0.4.0/lib/mocha/infinite_range.rb +27 -0
- data/vendor/mocha-0.4.0/lib/mocha/inspect.rb +37 -0
- data/vendor/mocha-0.4.0/lib/mocha/instance_method.rb +8 -0
- data/vendor/mocha-0.4.0/lib/mocha/metaclass.rb +7 -0
- data/vendor/mocha-0.4.0/lib/mocha/mock.rb +20 -0
- data/vendor/mocha-0.4.0/lib/mocha/mock_methods.rb +122 -0
- data/vendor/mocha-0.4.0/lib/mocha/object.rb +100 -0
- data/vendor/mocha-0.4.0/lib/mocha/pretty_parameters.rb +28 -0
- data/vendor/mocha-0.4.0/lib/mocha/setup_and_teardown.rb +23 -0
- data/vendor/mocha-0.4.0/lib/mocha/standalone.rb +30 -0
- data/vendor/mocha-0.4.0/lib/mocha/test_case_adapter.rb +49 -0
- data/vendor/mocha-0.4.0/lib/mocha_standalone.rb +2 -0
- data/vendor/mocha-0.4.0/lib/stubba.rb +2 -0
- data/vendor/mocha-0.4.0/test/active_record_test_case.rb +36 -0
- data/vendor/mocha-0.4.0/test/all_tests.rb +75 -0
- data/vendor/mocha-0.4.0/test/execution_point.rb +34 -0
- data/vendor/mocha-0.4.0/test/method_definer.rb +18 -0
- data/vendor/mocha-0.4.0/test/mocha/any_instance_method_test.rb +124 -0
- data/vendor/mocha-0.4.0/test/mocha/auto_verify_test.rb +163 -0
- data/vendor/mocha-0.4.0/test/mocha/central_test.rb +124 -0
- data/vendor/mocha-0.4.0/test/mocha/class_method_test.rb +196 -0
- data/vendor/mocha-0.4.0/test/mocha/expectation_test.rb +357 -0
- data/vendor/mocha-0.4.0/test/mocha/infinite_range_test.rb +50 -0
- data/vendor/mocha-0.4.0/test/mocha/inspect_test.rb +90 -0
- data/vendor/mocha-0.4.0/test/mocha/metaclass_test.rb +22 -0
- data/vendor/mocha-0.4.0/test/mocha/mock_methods_test.rb +235 -0
- data/vendor/mocha-0.4.0/test/mocha/mock_test.rb +84 -0
- data/vendor/mocha-0.4.0/test/mocha/object_test.rb +165 -0
- data/vendor/mocha-0.4.0/test/mocha/pretty_parameters_test.rb +32 -0
- data/vendor/mocha-0.4.0/test/mocha/setup_and_teardown_test.rb +76 -0
- data/vendor/mocha-0.4.0/test/mocha_acceptance_test.rb +98 -0
- data/vendor/mocha-0.4.0/test/mocha_test_result_integration_test.rb +105 -0
- data/vendor/mocha-0.4.0/test/standalone_acceptance_test.rb +110 -0
- data/vendor/mocha-0.4.0/test/stubba_acceptance_test.rb +102 -0
- data/vendor/mocha-0.4.0/test/stubba_integration_test.rb +89 -0
- data/vendor/mocha-0.4.0/test/stubba_test_result_integration_test.rb +85 -0
- data/vendor/mocha-0.4.0/test/test_helper.rb +4 -0
- metadata +73 -3
@@ -0,0 +1,34 @@
|
|
1
|
+
class ExecutionPoint
|
2
|
+
|
3
|
+
attr_reader :backtrace
|
4
|
+
|
5
|
+
def self.current
|
6
|
+
new(caller)
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(backtrace)
|
10
|
+
@backtrace = backtrace
|
11
|
+
end
|
12
|
+
|
13
|
+
def file_name
|
14
|
+
/\A(.*?):\d+/.match(@backtrace.first)[1]
|
15
|
+
end
|
16
|
+
|
17
|
+
def line_number
|
18
|
+
Integer(/\A.*?:(\d+)/.match(@backtrace.first)[1])
|
19
|
+
end
|
20
|
+
|
21
|
+
def ==(other)
|
22
|
+
return false unless other.is_a?(ExecutionPoint)
|
23
|
+
(file_name == other.file_name) and (line_number == other.line_number)
|
24
|
+
end
|
25
|
+
|
26
|
+
def to_s
|
27
|
+
"file: #{file_name} line: #{line_number}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def inspect
|
31
|
+
to_s
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'mocha/metaclass'
|
2
|
+
|
3
|
+
class Object
|
4
|
+
|
5
|
+
def define_instance_method(method_symbol, &block)
|
6
|
+
__metaclass__.send(:define_method, method_symbol, block)
|
7
|
+
end
|
8
|
+
|
9
|
+
def replace_instance_method(method_symbol, &block)
|
10
|
+
raise "Cannot replace #{method_symbol} as #{self} does not respond to it." unless self.respond_to?(method_symbol)
|
11
|
+
define_instance_method(method_symbol, &block)
|
12
|
+
end
|
13
|
+
|
14
|
+
def define_instance_accessor(*symbols)
|
15
|
+
symbols.each { |symbol| __metaclass__.send(:attr_accessor, symbol) }
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'method_definer'
|
3
|
+
require 'mocha/mock'
|
4
|
+
require 'mocha/any_instance_method'
|
5
|
+
|
6
|
+
class AnyInstanceMethodTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
include Mocha
|
9
|
+
|
10
|
+
def test_should_hide_original_method
|
11
|
+
klass = Class.new { def method_x; end }
|
12
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
13
|
+
hidden_method_x = method.hidden_method.to_sym
|
14
|
+
|
15
|
+
method.hide_original_method
|
16
|
+
|
17
|
+
assert klass.method_defined?(hidden_method_x)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_should_not_hide_original_method_if_it_is_not_defined
|
21
|
+
klass = Class.new
|
22
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
23
|
+
hidden_method_x = method.hidden_method.to_sym
|
24
|
+
|
25
|
+
method.hide_original_method
|
26
|
+
|
27
|
+
assert_equal false, klass.method_defined?(hidden_method_x)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_define_a_new_method
|
31
|
+
klass = Class.new { def method_x; end }
|
32
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
33
|
+
mocha = Mock.new
|
34
|
+
mocha.expects(:method_x).with(:param1, :param2).returns(:result)
|
35
|
+
any_instance = Object.new
|
36
|
+
any_instance.define_instance_method(:mocha) { mocha }
|
37
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
38
|
+
|
39
|
+
method.define_new_method
|
40
|
+
|
41
|
+
instance = klass.new
|
42
|
+
result = instance.method_x(:param1, :param2)
|
43
|
+
|
44
|
+
assert_equal :result, result
|
45
|
+
mocha.verify
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_should_restore_original_method
|
49
|
+
klass = Class.new { def method_x; end }
|
50
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
51
|
+
hidden_method_x = method.hidden_method.to_sym
|
52
|
+
klass.send(:define_method, hidden_method_x, Proc.new { :original_result })
|
53
|
+
|
54
|
+
method.restore_original_method
|
55
|
+
|
56
|
+
instance = klass.new
|
57
|
+
assert_equal :original_result, instance.method_x
|
58
|
+
assert !klass.method_defined?(hidden_method_x)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_should_not_restore_original_method_if_hidden_method_not_defined
|
62
|
+
klass = Class.new { def method_x; :new_result; end }
|
63
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
64
|
+
|
65
|
+
method.restore_original_method
|
66
|
+
|
67
|
+
instance = klass.new
|
68
|
+
assert_equal :new_result, instance.method_x
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_should_call_remove_new_method
|
72
|
+
klass = Class.new { def method_x; end }
|
73
|
+
any_instance = Mock.new
|
74
|
+
any_instance.stubs(:reset_mocha)
|
75
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
76
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
77
|
+
method.replace_instance_method(:restore_original_method) { }
|
78
|
+
method.define_instance_accessor(:remove_called)
|
79
|
+
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
80
|
+
|
81
|
+
method.unstub
|
82
|
+
|
83
|
+
assert method.remove_called
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_should_call_restore_original_method
|
87
|
+
klass = Class.new { def method_x; end }
|
88
|
+
any_instance = Mock.new
|
89
|
+
any_instance.stubs(:reset_mocha)
|
90
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
91
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
92
|
+
method.replace_instance_method(:remove_new_method) { }
|
93
|
+
method.define_instance_accessor(:restore_called)
|
94
|
+
method.replace_instance_method(:restore_original_method) { self.restore_called = true }
|
95
|
+
|
96
|
+
method.unstub
|
97
|
+
|
98
|
+
assert method.restore_called
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_should_call_reset_mocha
|
102
|
+
klass = Class.new { def method_x; end }
|
103
|
+
any_instance = Class.new { attr_accessor :mocha_was_reset; def reset_mocha; self.mocha_was_reset = true; end }.new
|
104
|
+
klass.define_instance_method(:any_instance) { any_instance }
|
105
|
+
method = AnyInstanceMethod.new(klass, :method_x)
|
106
|
+
method.replace_instance_method(:remove_new_method) { }
|
107
|
+
method.replace_instance_method(:restore_original_method) { }
|
108
|
+
|
109
|
+
method.unstub
|
110
|
+
|
111
|
+
assert any_instance.mocha_was_reset
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_should_return_any_instance_mocha_for_stubbee
|
115
|
+
mocha = Object.new
|
116
|
+
any_instance = Object.new
|
117
|
+
any_instance.define_instance_method(:mocha) { mocha }
|
118
|
+
stubbee = Class.new
|
119
|
+
stubbee.define_instance_method(:any_instance) { any_instance }
|
120
|
+
method = AnyInstanceMethod.new(stubbee, :method_name)
|
121
|
+
assert_equal stubbee.any_instance.mocha, method.mock
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
require 'mocha/auto_verify'
|
3
|
+
require 'method_definer'
|
4
|
+
|
5
|
+
class AutoVerifyTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
attr_reader :test_case
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@test_case = Object.new
|
11
|
+
class << test_case
|
12
|
+
def self.add_teardown_method(symbol); end
|
13
|
+
include Mocha::AutoVerify
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_add_mock_type_expectations
|
18
|
+
test_case.define_instance_accessor(:expectation_type, :expectations)
|
19
|
+
test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
|
20
|
+
self.expectation_type = expectation_type
|
21
|
+
self.expectations = expectations
|
22
|
+
end
|
23
|
+
expectations = { :method1 => :value1, :method2 => :value2 }
|
24
|
+
|
25
|
+
test_case.mock(expectations)
|
26
|
+
|
27
|
+
assert_equal :expects, test_case.expectation_type
|
28
|
+
assert_equal expectations, test_case.expectations
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_should_add_stub_type_expectations
|
32
|
+
test_case.define_instance_accessor(:expectation_type, :expectations)
|
33
|
+
test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
|
34
|
+
self.expectation_type = expectation_type
|
35
|
+
self.expectations = expectations
|
36
|
+
end
|
37
|
+
expectations = { :method1 => :value1, :method2 => :value2 }
|
38
|
+
|
39
|
+
test_case.stub(expectations)
|
40
|
+
|
41
|
+
assert_equal :stubs, test_case.expectation_type
|
42
|
+
assert_equal expectations, test_case.expectations
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_should_add_greedy_stub_type_expectations
|
46
|
+
test_case.define_instance_accessor(:expectation_type, :expectations)
|
47
|
+
test_case.define_instance_method(:build_mock_with_expectations) do |expectation_type, expectations|
|
48
|
+
self.expectation_type = expectation_type
|
49
|
+
self.expectations = expectations
|
50
|
+
end
|
51
|
+
expectations = { :method1 => :value1, :method2 => :value2 }
|
52
|
+
|
53
|
+
test_case.stub_everything(expectations)
|
54
|
+
|
55
|
+
assert_equal :stub_everything, test_case.expectation_type
|
56
|
+
assert_equal expectations, test_case.expectations
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_should_build_mock
|
60
|
+
mock = test_case.build_mock_with_expectations
|
61
|
+
assert mock.is_a?(Mocha::Mock)
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_should_add_expectation_to_mock
|
65
|
+
mock = test_case.build_mock_with_expectations(:expects, :expected_method => 'return_value')
|
66
|
+
assert_equal 'return_value', mock.expected_method
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_should_build_stub
|
70
|
+
stub = test_case.build_mock_with_expectations(:stubs)
|
71
|
+
assert stub.is_a?(Mocha::Mock)
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_should_add_expectation_to_stub
|
75
|
+
stub = test_case.build_mock_with_expectations(:stubs, :stubbed_method => 'return_value')
|
76
|
+
assert_equal 'return_value', stub.stubbed_method
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_should_build_greedy_stub
|
80
|
+
greedy_stub = test_case.build_mock_with_expectations(:stub_everything)
|
81
|
+
assert greedy_stub.stub_everything
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_should_add_expectations_to_greedy_stub
|
85
|
+
greedy_mock = test_case.build_mock_with_expectations(:stub_everything, :stubbed_method => 'return_value')
|
86
|
+
assert_equal 'return_value', greedy_mock.stubbed_method
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_should_build_new_mock_each_time
|
90
|
+
assert_not_equal test_case.build_mock_with_expectations, test_case.build_mock_with_expectations
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_should_store_each_new_mock
|
94
|
+
expected = Array.new(3) { test_case.build_mock_with_expectations }
|
95
|
+
assert_equal expected, test_case.mocks
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_should_verify_each_mock
|
99
|
+
mocks = Array.new(3) do
|
100
|
+
mock = Object.new
|
101
|
+
mock.define_instance_accessor(:verify_called)
|
102
|
+
mock.define_instance_method(:verify) { self.verify_called = true }
|
103
|
+
mock
|
104
|
+
end
|
105
|
+
test_case.replace_instance_method(:mocks) { mocks }
|
106
|
+
test_case.verify_mocks
|
107
|
+
assert mocks.all? { |mock| mock.verify_called }
|
108
|
+
end
|
109
|
+
|
110
|
+
def test_should_yield_to_block_for_each_assertion
|
111
|
+
mock_class = Class.new do
|
112
|
+
def verify(&block); yield; end
|
113
|
+
end
|
114
|
+
mock = mock_class.new
|
115
|
+
test_case.replace_instance_method(:mocks) { [mock] }
|
116
|
+
yielded = false
|
117
|
+
test_case.verify_mocks { yielded = true }
|
118
|
+
assert yielded
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_should_reset_mocks_on_teardown
|
122
|
+
mock = Class.new { define_method(:verify) {} }.new
|
123
|
+
test_case.mocks << mock
|
124
|
+
test_case.teardown_mocks
|
125
|
+
assert test_case.mocks.empty?
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_should_stub_everything
|
129
|
+
mock = test_case.stub_everything
|
130
|
+
assert_equal true, mock.stub_everything
|
131
|
+
end
|
132
|
+
|
133
|
+
def test_should_add_mock_to_mocks
|
134
|
+
mock = test_case.mock
|
135
|
+
assert_equal [mock], test_case.mocks
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_should_add_stub_to_mocks
|
139
|
+
stub = test_case.stub
|
140
|
+
assert_equal [stub], test_case.mocks
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_should_add_greedy_stub_to_mocks
|
144
|
+
greedy_stub = test_case.stub_everything
|
145
|
+
assert_equal [greedy_stub], test_case.mocks
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_should_create_mock_with_name
|
149
|
+
mock = test_case.mock('named_mock')
|
150
|
+
assert_equal '#<Mock:named_mock>', mock.mocha_inspect
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_should_create_stub_with_name
|
154
|
+
stub = test_case.stub('named_stub')
|
155
|
+
assert_equal '#<Mock:named_stub>', stub.mocha_inspect
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_should_create_greedy_stub_with_name
|
159
|
+
greedy_stub = test_case.stub_everything('named_greedy_stub')
|
160
|
+
assert_equal '#<Mock:named_greedy_stub>', greedy_stub.mocha_inspect
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), "..", "test_helper")
|
2
|
+
|
3
|
+
require 'mocha/central'
|
4
|
+
require 'mocha/mock'
|
5
|
+
require 'method_definer'
|
6
|
+
|
7
|
+
class CentralTest < Test::Unit::TestCase
|
8
|
+
|
9
|
+
include Mocha
|
10
|
+
|
11
|
+
def test_should_start_with_empty_stubba_methods
|
12
|
+
stubba = Central.new
|
13
|
+
|
14
|
+
assert_equal [], stubba.stubba_methods
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_stub_method_if_not_already_stubbed
|
18
|
+
method = Mock.new
|
19
|
+
method.expects(:stub)
|
20
|
+
stubba = Central.new
|
21
|
+
|
22
|
+
stubba.stub(method)
|
23
|
+
|
24
|
+
method.verify
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_should_not_stub_method_if_already_stubbed
|
28
|
+
method = Mock.new
|
29
|
+
method.expects(:stub).times(0)
|
30
|
+
stubba = Central.new
|
31
|
+
stubba_methods = Mock.new
|
32
|
+
stubba_methods.stubs(:include?).with(method).returns(true)
|
33
|
+
stubba.stubba_methods = stubba_methods
|
34
|
+
|
35
|
+
stubba.stub(method)
|
36
|
+
|
37
|
+
method.verify
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_should_record_method
|
41
|
+
method = Mock.new
|
42
|
+
method.expects(:stub)
|
43
|
+
stubba = Central.new
|
44
|
+
|
45
|
+
stubba.stub(method)
|
46
|
+
|
47
|
+
assert_equal [method], stubba.stubba_methods
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_should_unstub_all_methods
|
51
|
+
stubba = Central.new
|
52
|
+
method_1 = Mock.new
|
53
|
+
method_1.expects(:unstub)
|
54
|
+
method_2 = Mock.new
|
55
|
+
method_2.expects(:unstub)
|
56
|
+
stubba.stubba_methods = [method_1, method_2]
|
57
|
+
|
58
|
+
stubba.unstub_all
|
59
|
+
|
60
|
+
assert_equal [], stubba.stubba_methods
|
61
|
+
method_1.verify
|
62
|
+
method_2.verify
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_should_collect_mocks_from_all_methods
|
66
|
+
method_1 = Mock.new
|
67
|
+
method_1.stubs(:mock).returns(:mock_1)
|
68
|
+
|
69
|
+
method_2 = Mock.new
|
70
|
+
method_2.stubs(:mock).returns(:mock_2)
|
71
|
+
|
72
|
+
stubba = Central.new
|
73
|
+
stubba.stubba_methods = [method_1, method_2]
|
74
|
+
|
75
|
+
assert_equal 2, stubba.unique_mocks.size
|
76
|
+
assert stubba.unique_mocks.include?(:mock_1)
|
77
|
+
assert stubba.unique_mocks.include?(:mock_2)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_should_return_unique_mochas
|
81
|
+
method_1 = Mock.new
|
82
|
+
method_1.stubs(:mock).returns(:mock_1)
|
83
|
+
|
84
|
+
method_2 = Mock.new
|
85
|
+
method_2.stubs(:mock).returns(:mock_1)
|
86
|
+
|
87
|
+
stubba = Central.new
|
88
|
+
stubba.stubba_methods = [method_1, method_2]
|
89
|
+
|
90
|
+
assert_equal [:mock_1], stubba.unique_mocks
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_should_call_verify_on_all_unique_mocks
|
94
|
+
mock_class = Class.new do
|
95
|
+
attr_accessor :verify_called
|
96
|
+
def verify
|
97
|
+
self.verify_called = true
|
98
|
+
end
|
99
|
+
end
|
100
|
+
mocks = [mock_class.new, mock_class.new]
|
101
|
+
stubba = Central.new
|
102
|
+
stubba.replace_instance_method(:unique_mocks) { mocks }
|
103
|
+
|
104
|
+
stubba.verify_all
|
105
|
+
|
106
|
+
assert mocks.all? { |mock| mock.verify_called }
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_should_call_verify_on_all_unique_mochas
|
110
|
+
mock_class = Class.new do
|
111
|
+
def verify(&block)
|
112
|
+
yield if block_given?
|
113
|
+
end
|
114
|
+
end
|
115
|
+
stubba = Central.new
|
116
|
+
stubba.replace_instance_method(:unique_mocks) { [mock_class.new] }
|
117
|
+
yielded = false
|
118
|
+
|
119
|
+
stubba.verify_all { yielded = true }
|
120
|
+
|
121
|
+
assert yielded
|
122
|
+
end
|
123
|
+
|
124
|
+
end
|