google-geo 1.0 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|