mocha 1.11.2 → 1.12.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.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/README.md +28 -30
  4. data/RELEASE.md +25 -0
  5. data/Rakefile +6 -1
  6. data/lib/mocha/cardinality.rb +30 -27
  7. data/lib/mocha/expectation.rb +24 -24
  8. data/lib/mocha/mock.rb +1 -1
  9. data/lib/mocha/mockery.rb +9 -22
  10. data/lib/mocha/state_machine.rb +30 -38
  11. data/lib/mocha/version.rb +1 -1
  12. data/mocha.gemspec +3 -1
  13. metadata +5 -192
  14. data/docs/CNAME +0 -1
  15. data/docs/Mocha.html +0 -254
  16. data/docs/Mocha/API.html +0 -1285
  17. data/docs/Mocha/ClassMethods.html +0 -264
  18. data/docs/Mocha/Configuration.html +0 -1525
  19. data/docs/Mocha/Expectation.html +0 -2862
  20. data/docs/Mocha/ExpectationError.html +0 -152
  21. data/docs/Mocha/ExpectationErrorFactory.html +0 -260
  22. data/docs/Mocha/Hooks.html +0 -370
  23. data/docs/Mocha/Integration.html +0 -125
  24. data/docs/Mocha/Integration/MiniTest.html +0 -123
  25. data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
  26. data/docs/Mocha/Integration/TestUnit.html +0 -123
  27. data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
  28. data/docs/Mocha/Mock.html +0 -1210
  29. data/docs/Mocha/ObjectMethods.html +0 -765
  30. data/docs/Mocha/ParameterMatchers.html +0 -2949
  31. data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
  32. data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
  33. data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
  34. data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
  35. data/docs/Mocha/ParameterMatchers/Base.html +0 -441
  36. data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
  37. data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
  38. data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
  39. data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
  40. data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
  41. data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
  42. data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
  43. data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
  44. data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
  45. data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
  46. data/docs/Mocha/ParameterMatchers/Not.html +0 -153
  47. data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
  48. data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
  49. data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
  50. data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
  51. data/docs/Mocha/Sequence.html +0 -149
  52. data/docs/Mocha/StateMachine.html +0 -527
  53. data/docs/Mocha/StateMachine/State.html +0 -140
  54. data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
  55. data/docs/Mocha/StubbingError.html +0 -150
  56. data/docs/_index.html +0 -519
  57. data/docs/class_list.html +0 -51
  58. data/docs/css/common.css +0 -1
  59. data/docs/css/full_list.css +0 -58
  60. data/docs/css/style.css +0 -496
  61. data/docs/file.COPYING.html +0 -81
  62. data/docs/file.MIT-LICENSE.html +0 -85
  63. data/docs/file.README.html +0 -448
  64. data/docs/file.RELEASE.html +0 -1028
  65. data/docs/file_list.html +0 -71
  66. data/docs/frames.html +0 -17
  67. data/docs/index.html +0 -448
  68. data/docs/js/app.js +0 -303
  69. data/docs/js/full_list.js +0 -216
  70. data/docs/js/jquery.js +0 -4
  71. data/docs/method_list.html +0 -651
  72. data/docs/top-level-namespace.html +0 -118
  73. data/test/acceptance/acceptance_test_helper.rb +0 -42
  74. data/test/acceptance/bug_18914_test.rb +0 -37
  75. data/test/acceptance/bug_21465_test.rb +0 -31
  76. data/test/acceptance/bug_21563_test.rb +0 -22
  77. data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
  78. data/test/acceptance/exception_rescue_test.rb +0 -53
  79. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  80. data/test/acceptance/expected_invocation_count_test.rb +0 -229
  81. data/test/acceptance/failure_messages_test.rb +0 -77
  82. data/test/acceptance/issue_272_test.rb +0 -50
  83. data/test/acceptance/issue_457_test.rb +0 -31
  84. data/test/acceptance/issue_65_test.rb +0 -64
  85. data/test/acceptance/issue_70_test.rb +0 -53
  86. data/test/acceptance/mocha_example_test.rb +0 -106
  87. data/test/acceptance/mocha_test_result_test.rb +0 -83
  88. data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -98
  89. data/test/acceptance/mock_test.rb +0 -191
  90. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
  91. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
  92. data/test/acceptance/multiple_yielding_test.rb +0 -59
  93. data/test/acceptance/optional_parameters_test.rb +0 -67
  94. data/test/acceptance/parameter_matcher_test.rb +0 -299
  95. data/test/acceptance/partial_mocks_test.rb +0 -44
  96. data/test/acceptance/prepend_test.rb +0 -86
  97. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
  98. data/test/acceptance/raise_exception_test.rb +0 -36
  99. data/test/acceptance/return_value_test.rb +0 -49
  100. data/test/acceptance/sequence_test.rb +0 -189
  101. data/test/acceptance/states_test.rb +0 -71
  102. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
  103. data/test/acceptance/stub_any_instance_method_test.rb +0 -301
  104. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
  105. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  106. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -73
  107. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
  108. data/test/acceptance/stub_everything_test.rb +0 -53
  109. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
  110. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
  111. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
  112. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
  113. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
  114. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  115. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -67
  116. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
  117. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
  118. data/test/acceptance/stub_module_method_test.rb +0 -200
  119. data/test/acceptance/stub_test.rb +0 -49
  120. data/test/acceptance/stubba_example_test.rb +0 -103
  121. data/test/acceptance/stubba_test_result_test.rb +0 -71
  122. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
  123. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  124. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
  125. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
  126. data/test/acceptance/stubbing_nil_test.rb +0 -60
  127. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
  128. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  129. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
  130. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
  131. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  132. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
  133. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
  134. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
  135. data/test/acceptance/throw_test.rb +0 -42
  136. data/test/acceptance/unexpected_invocation_test.rb +0 -23
  137. data/test/acceptance/unstubbing_test.rb +0 -194
  138. data/test/acceptance/yielding_test.rb +0 -80
  139. data/test/assertions.rb +0 -8
  140. data/test/deprecation_disabler.rb +0 -15
  141. data/test/execution_point.rb +0 -36
  142. data/test/integration/mini_test_test.rb +0 -8
  143. data/test/integration/shared_tests.rb +0 -178
  144. data/test/integration/test_unit_test.rb +0 -8
  145. data/test/method_definer.rb +0 -16
  146. data/test/mini_test_result.rb +0 -96
  147. data/test/minitest_result.rb +0 -48
  148. data/test/simple_counter.rb +0 -11
  149. data/test/test_helper.rb +0 -58
  150. data/test/test_runner.rb +0 -58
  151. data/test/test_unit_result.rb +0 -22
  152. data/test/unit/any_instance_method_test.rb +0 -175
  153. data/test/unit/array_inspect_test.rb +0 -14
  154. data/test/unit/backtrace_filter_test.rb +0 -17
  155. data/test/unit/cardinality_test.rb +0 -72
  156. data/test/unit/central_test.rb +0 -98
  157. data/test/unit/change_state_side_effect_test.rb +0 -37
  158. data/test/unit/class_methods_test.rb +0 -69
  159. data/test/unit/configuration_test.rb +0 -37
  160. data/test/unit/date_time_inspect_test.rb +0 -19
  161. data/test/unit/exception_raiser_test.rb +0 -45
  162. data/test/unit/expectation_list_test.rb +0 -82
  163. data/test/unit/expectation_test.rb +0 -504
  164. data/test/unit/hash_inspect_test.rb +0 -14
  165. data/test/unit/hooks_test.rb +0 -35
  166. data/test/unit/in_state_ordering_constraint_test.rb +0 -39
  167. data/test/unit/instance_method_test.rb +0 -282
  168. data/test/unit/method_matcher_test.rb +0 -26
  169. data/test/unit/mock_test.rb +0 -372
  170. data/test/unit/mockery_test.rb +0 -171
  171. data/test/unit/module_methods_test.rb +0 -16
  172. data/test/unit/object_inspect_test.rb +0 -60
  173. data/test/unit/object_methods_test.rb +0 -63
  174. data/test/unit/parameter_matchers/all_of_test.rb +0 -24
  175. data/test/unit/parameter_matchers/any_of_test.rb +0 -24
  176. data/test/unit/parameter_matchers/anything_test.rb +0 -19
  177. data/test/unit/parameter_matchers/equals_test.rb +0 -23
  178. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
  179. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  180. data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
  181. data/test/unit/parameter_matchers/has_key_test.rb +0 -54
  182. data/test/unit/parameter_matchers/has_value_test.rb +0 -55
  183. data/test/unit/parameter_matchers/includes_test.rb +0 -106
  184. data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
  185. data/test/unit/parameter_matchers/is_a_test.rb +0 -23
  186. data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
  187. data/test/unit/parameter_matchers/not_test.rb +0 -24
  188. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
  189. data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
  190. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  191. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
  192. data/test/unit/parameters_matcher_test.rb +0 -119
  193. data/test/unit/receivers_test.rb +0 -96
  194. data/test/unit/return_values_test.rb +0 -66
  195. data/test/unit/sequence_test.rb +0 -100
  196. data/test/unit/single_return_value_test.rb +0 -17
  197. data/test/unit/state_machine_test.rb +0 -96
  198. data/test/unit/string_inspect_test.rb +0 -9
  199. data/test/unit/thrower_test.rb +0 -23
  200. data/test/unit/yield_parameters_test.rb +0 -73
@@ -1,67 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class OptionalParameterMatcherTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_pass_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
15
- test_result = run_as_test do
16
- mock = mock()
17
- mock.expects(:method).with(1, 2, optionally(3, 4))
18
- mock.method(1, 2)
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_pass_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
24
- test_result = run_as_test do
25
- mock = mock()
26
- mock.expects(:method).with(1, 2, optionally(3, 4))
27
- mock.method(1, 2, 3)
28
- end
29
- assert_passed(test_result)
30
- end
31
-
32
- def test_should_pass_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
33
- test_result = run_as_test do
34
- mock = mock()
35
- mock.expects(:method).with(1, 2, optionally(3, 4))
36
- mock.method(1, 2, 3, 4)
37
- end
38
- assert_passed(test_result)
39
- end
40
-
41
- def test_should_fail_if_all_required_and_optional_parameters_match_but_too_many_optional_parameters_are_supplied
42
- test_result = run_as_test do
43
- mock = mock()
44
- mock.expects(:method).with(1, 2, optionally(3, 4))
45
- mock.method(1, 2, 3, 4, 5)
46
- end
47
- assert_failed(test_result)
48
- end
49
-
50
- def test_should_fail_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
51
- test_result = run_as_test do
52
- mock = mock()
53
- mock.expects(:method).with(1, 2, optionally(3, 4))
54
- mock.method(1, 2, 4)
55
- end
56
- assert_failed(test_result)
57
- end
58
-
59
- def test_should_fail_if_all_required_parameters_match_but_no_optional_parameters_match
60
- test_result = run_as_test do
61
- mock = mock()
62
- mock.expects(:method).with(1, 2, optionally(3, 4))
63
- mock.method(1, 2, 4, 5)
64
- end
65
- assert_failed(test_result)
66
- end
67
- end
@@ -1,299 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ParameterMatcherTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_match_hash_parameter_with_specified_key
15
- test_result = run_as_test do
16
- mock = mock()
17
- mock.expects(:method).with(has_key(:key_1))
18
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_not_match_hash_parameter_with_specified_key
24
- test_result = run_as_test do
25
- mock = mock()
26
- mock.expects(:method).with(has_key(:key_1))
27
- mock.method(:key_2 => 'value_2')
28
- end
29
- assert_failed(test_result)
30
- end
31
-
32
- def test_should_match_hash_parameter_with_specified_value
33
- test_result = run_as_test do
34
- mock = mock()
35
- mock.expects(:method).with(has_value('value_1'))
36
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
37
- end
38
- assert_passed(test_result)
39
- end
40
-
41
- def test_should_not_match_hash_parameter_with_specified_value
42
- test_result = run_as_test do
43
- mock = mock()
44
- mock.expects(:method).with(has_value('value_1'))
45
- mock.method(:key_2 => 'value_2')
46
- end
47
- assert_failed(test_result)
48
- end
49
-
50
- def test_should_match_hash_parameter_with_specified_key_value_pair
51
- test_result = run_as_test do
52
- mock = mock()
53
- mock.expects(:method).with(has_entry(:key_1, 'value_1'))
54
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
55
- end
56
- assert_passed(test_result)
57
- end
58
-
59
- def test_should_not_match_hash_parameter_with_specified_key_value_pair
60
- test_result = run_as_test do
61
- mock = mock()
62
- mock.expects(:method).with(has_entry(:key_1, 'value_2'))
63
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
64
- end
65
- assert_failed(test_result)
66
- end
67
-
68
- def test_should_match_hash_parameter_with_specified_hash_entry
69
- test_result = run_as_test do
70
- mock = mock()
71
- mock.expects(:method).with(has_entry(:key_1 => 'value_1'))
72
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
73
- end
74
- assert_passed(test_result)
75
- end
76
-
77
- def test_should_not_match_hash_parameter_with_specified_hash_entry
78
- test_result = run_as_test do
79
- mock = mock()
80
- mock.expects(:method).with(has_entry(:key_1 => 'value_2'))
81
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
82
- end
83
- assert_failed(test_result)
84
- end
85
-
86
- def test_should_match_hash_parameter_with_specified_entries
87
- test_result = run_as_test do
88
- mock = mock()
89
- mock.expects(:method).with(has_entries(:key_1 => 'value_1', :key_2 => 'value_2'))
90
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3')
91
- end
92
- assert_passed(test_result)
93
- end
94
-
95
- def test_should_not_match_hash_parameter_with_specified_entries
96
- test_result = run_as_test do
97
- mock = mock()
98
- mock.expects(:method).with(has_entries(:key_1 => 'value_1', :key_2 => 'value_2'))
99
- mock.method(:key_1 => 'value_1', :key_2 => 'value_3')
100
- end
101
- assert_failed(test_result)
102
- end
103
-
104
- def test_should_match_parameter_that_matches_regular_expression
105
- test_result = run_as_test do
106
- mock = mock()
107
- mock.expects(:method).with(regexp_matches(/meter/))
108
- mock.method('this parameter should match')
109
- end
110
- assert_passed(test_result)
111
- end
112
-
113
- def test_should_not_match_parameter_that_does_not_match_regular_expression
114
- test_result = run_as_test do
115
- mock = mock()
116
- mock.expects(:method).with(regexp_matches(/something different/))
117
- mock.method('this parameter should not match')
118
- end
119
- assert_failed(test_result)
120
- end
121
-
122
- def test_should_match_hash_parameter_with_specified_entries_using_nested_matchers
123
- test_result = run_as_test do
124
- mock = mock()
125
- mock.expects(:method).with(has_entries(:key_1 => regexp_matches(/value_1/), kind_of(Symbol) => 'value_2'))
126
- mock.method(:key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3')
127
- end
128
- assert_passed(test_result)
129
- end
130
-
131
- def test_should_not_match_hash_parameter_with_specified_entries_using_nested_matchers
132
- test_result = run_as_test do
133
- mock = mock()
134
- mock.expects(:method).with(has_entries(:key_1 => regexp_matches(/value_1/), kind_of(String) => 'value_2'))
135
- mock.method(:key_1 => 'value_2', :key_2 => 'value_3')
136
- end
137
- assert_failed(test_result)
138
- end
139
-
140
- def test_should_match_parameter_that_matches_any_value
141
- test_result = run_as_test do
142
- mock = mock()
143
- mock.expects(:method).with(any_of('value_1', 'value_2')).times(2)
144
- mock.method('value_1')
145
- mock.method('value_2')
146
- end
147
- assert_passed(test_result)
148
- end
149
-
150
- def test_should_not_match_parameter_that_does_not_match_any_value
151
- test_result = run_as_test do
152
- mock = mock()
153
- mock.expects(:method).with(any_of('value_1', 'value_2'))
154
- mock.method('value_3')
155
- end
156
- assert_failed(test_result)
157
- end
158
-
159
- def test_should_match_parameter_that_matches_any_of_the_given_matchers
160
- test_result = run_as_test do
161
- mock = mock()
162
- mock.expects(:method).with(has_key(:foo) | has_key(:bar)).times(2)
163
- mock.method(:foo => 'fooval')
164
- mock.method(:bar => 'barval')
165
- end
166
- assert_passed(test_result)
167
- end
168
-
169
- def test_should_not_match_parameter_that_does_not_match_any_of_the_given_matchers
170
- test_result = run_as_test do
171
- mock = mock()
172
- mock.expects(:method).with(has_key(:foo) | has_key(:bar))
173
- mock.method(:baz => 'bazval')
174
- end
175
- assert_failed(test_result)
176
- end
177
-
178
- def test_should_match_parameter_that_matches_all_values
179
- test_result = run_as_test do
180
- mock = mock()
181
- mock.expects(:method).with(all_of('value_1', 'value_1'))
182
- mock.method('value_1')
183
- end
184
- assert_passed(test_result)
185
- end
186
-
187
- def test_should_not_match_parameter_that_does_not_match_all_values
188
- test_result = run_as_test do
189
- mock = mock()
190
- mock.expects(:method).with(all_of('value_1', 'value_2'))
191
- mock.method('value_1')
192
- end
193
- assert_failed(test_result)
194
- end
195
-
196
- def test_should_match_parameter_that_matches_all_matchers
197
- test_result = run_as_test do
198
- mock = mock()
199
- mock.expects(:method).with(has_key(:foo) & has_key(:bar))
200
- mock.method(:foo => 'fooval', :bar => 'barval')
201
- end
202
- assert_passed(test_result)
203
- end
204
-
205
- def test_should_not_match_parameter_that_does_not_match_all_matchers
206
- test_result = run_as_test do
207
- mock = mock()
208
- mock.expects(:method).with(has_key(:foo) & has_key(:bar))
209
- mock.method(:foo => 'fooval', :baz => 'bazval')
210
- end
211
- assert_failed(test_result)
212
- end
213
-
214
- def test_should_match_parameter_that_responds_with_specified_value
215
- klass = Class.new do
216
- def quack
217
- 'quack'
218
- end
219
- end
220
- duck = klass.new
221
- test_result = run_as_test do
222
- mock = mock()
223
- mock.expects(:method).with(responds_with(:quack, 'quack'))
224
- mock.method(duck)
225
- end
226
- assert_passed(test_result)
227
- end
228
-
229
- def test_should_not_match_parameter_that_does_not_respond_with_specified_value
230
- klass = Class.new do
231
- def quack
232
- 'woof'
233
- end
234
- end
235
- duck = klass.new
236
- test_result = run_as_test do
237
- mock = mock()
238
- mock.expects(:method).with(responds_with(:quack, 'quack'))
239
- mock.method(duck)
240
- end
241
- assert_failed(test_result)
242
- end
243
-
244
- def test_should_match_parameter_that_is_equivalent_uri
245
- test_result = run_as_test do
246
- mock = mock()
247
- mock.expects(:method).with(equivalent_uri('http://example.com/foo?b=2&a=1'))
248
- mock.method('http://example.com/foo?a=1&b=2')
249
- end
250
- assert_passed(test_result)
251
- end
252
-
253
- def test_should_not_match_parameter_that_is_not_equivalent
254
- test_result = run_as_test do
255
- mock = mock()
256
- mock.expects(:method).with(equivalent_uri('http://example.com/foo?a=1'))
257
- mock.method('http://example.com/foo?a=1&b=2')
258
- end
259
- assert_failed(test_result)
260
- end
261
-
262
- def test_should_match_parameter_when_value_is_divisible_by_four
263
- test_result = run_as_test do
264
- mock = mock()
265
- mock.expects(:method).with { |actual_value| (actual_value % 4).zero? }
266
- mock.method(8)
267
- end
268
- assert_passed(test_result)
269
- end
270
-
271
- def test_should_not_match_parameter_when_value_is_not_divisible_by_four
272
- test_result = run_as_test do
273
- mock = mock()
274
- mock.expects(:method).with { |actual_value| (actual_value % 4).zero? }
275
- mock.method(9)
276
- end
277
- assert_failed(test_result)
278
- end
279
-
280
- def test_should_match_parameters_when_values_add_up_to_ten
281
- test_result = run_as_test do
282
- mock = mock()
283
- matcher = lambda { |*values| values.inject(0) { |sum, n| sum + n } == 10 }
284
- mock.expects(:method).with(&matcher)
285
- mock.method(1, 2, 3, 4)
286
- end
287
- assert_passed(test_result)
288
- end
289
-
290
- def test_should_not_match_parameters_when_values_do_not_add_up_to_ten
291
- test_result = run_as_test do
292
- mock = mock()
293
- matcher = lambda { |*values| values.inject(0) { |sum, n| sum + n } == 10 }
294
- mock.expects(:method).with(&matcher)
295
- mock.method(1, 2, 3, 4, 5)
296
- end
297
- assert_failed(test_result)
298
- end
299
- end
@@ -1,44 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class PartialMockTest < Mocha::TestCase
4
- include AcceptanceTest
5
-
6
- def setup
7
- setup_acceptance_test
8
- end
9
-
10
- def teardown
11
- teardown_acceptance_test
12
- end
13
-
14
- def test_should_pass_if_all_expectations_are_satisfied
15
- test_result = run_as_test do
16
- partial_mock_one = 'partial_mock_one'
17
- partial_mock_two = 'partial_mock_two'
18
-
19
- partial_mock_one.expects(:first)
20
- partial_mock_one.expects(:second)
21
- partial_mock_two.expects(:third)
22
-
23
- partial_mock_one.first
24
- partial_mock_one.second
25
- partial_mock_two.third
26
- end
27
- assert_passed(test_result)
28
- end
29
-
30
- def test_should_fail_if_all_expectations_are_not_satisfied
31
- test_result = run_as_test do
32
- partial_mock_one = 'partial_mock_one'
33
- partial_mock_two = 'partial_mock_two'
34
-
35
- partial_mock_one.expects(:first)
36
- partial_mock_one.expects(:second)
37
- partial_mock_two.expects(:third)
38
-
39
- partial_mock_one.first
40
- partial_mock_two.third
41
- end
42
- assert_failed(test_result)
43
- end
44
- end
@@ -1,86 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/ruby_version'
3
-
4
- class PrependTest < Mocha::TestCase
5
- include AcceptanceTest
6
-
7
- def setup
8
- setup_acceptance_test
9
- end
10
-
11
- def teardown
12
- teardown_acceptance_test
13
- end
14
-
15
- if Mocha::RUBY_V2_PLUS
16
-
17
- module Mod1
18
- def my_method
19
- super + ' World'
20
- end
21
- end
22
-
23
- module Mod2
24
- def my_method
25
- super + ' Wide'
26
- end
27
- end
28
-
29
- class Klass1
30
- prepend Mod1
31
- prepend Mod2
32
-
33
- def my_method
34
- 'Hello'
35
- end
36
- end
37
-
38
- class Klass2
39
- class << self
40
- prepend Mod1
41
- prepend Mod2
42
-
43
- def my_method
44
- 'Hello'
45
- end
46
- end
47
- end
48
-
49
- def test_stubbing_any_instance_with_multiple_prepended_methods
50
- assert_snapshot_unchanged(Klass1) do
51
- test_result = run_as_test do
52
- Klass1.any_instance.stubs(:my_method).returns('Bye World')
53
- assert_equal 'Bye World', Klass1.new.my_method
54
- end
55
- assert_passed(test_result)
56
- end
57
- assert_equal 'Hello World Wide', Klass1.new.my_method
58
- end
59
-
60
- def test_stubbing_instance_with_multiple_prepended_methods
61
- object = Klass1.new
62
-
63
- assert_snapshot_unchanged(object) do
64
- test_result = run_as_test do
65
- object.stubs(:my_method).returns('Bye World')
66
- assert_equal 'Bye World', object.my_method
67
- assert_equal 'Hello World Wide', Klass1.new.my_method
68
- end
69
- assert_passed(test_result)
70
- end
71
- assert_equal 'Hello World Wide', object.my_method
72
- end
73
-
74
- def test_stubbing_a_prepended_class_method
75
- assert_snapshot_unchanged(Klass2) do
76
- test_result = run_as_test do
77
- Klass2.stubs(:my_method).returns('Bye World')
78
- assert_equal 'Bye World', Klass2.my_method
79
- end
80
- assert_passed(test_result)
81
- end
82
- assert_equal 'Hello World Wide', Klass2.my_method
83
- end
84
-
85
- end
86
- end