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,98 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'deprecation_disabler'
3
-
4
- class MockBuiltWithFirstArgumentTypeBeingStringTest < 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
- def test_mock_built_with_single_symbol_argument_with_satisfied_expectation
16
- test_result = run_as_test do
17
- DeprecationDisabler.disable_deprecations do
18
- m = mock(:my_method)
19
- assert_nil m.my_method
20
- end
21
- expected_warning = 'Explicitly include `my_method` in Hash of expected methods vs return values, e.g. `mock(:my_method => nil)`.'
22
- assert_equal expected_warning, Mocha::Deprecation.messages.last
23
- end
24
- assert_passed(test_result)
25
- end
26
-
27
- def test_mock_built_with_single_symbol_argument_with_unsatisfied_expectation
28
- test_result = run_as_test do
29
- DeprecationDisabler.disable_deprecations do
30
- mock(:my_method)
31
- end
32
- end
33
- assert_failed(test_result)
34
- assert(test_result.failure_message_lines.any? do |line|
35
- line[/expected exactly once, invoked never\: #<Mock\:0x[0-9a-f]+>\.my_method\(any_parameters\)/]
36
- end)
37
- end
38
-
39
- def test_stub_built_with_single_symbol_argument
40
- test_result = run_as_test do
41
- DeprecationDisabler.disable_deprecations do
42
- s = stub(:my_method)
43
- assert_nil s.my_method
44
- end
45
- expected_warning = 'Explicitly include `my_method` in Hash of stubbed methods vs return values, e.g. `stub(:my_method => nil)`.'
46
- assert_equal expected_warning, Mocha::Deprecation.messages.last
47
- end
48
- assert_passed(test_result)
49
- end
50
-
51
- def test_mock_built_with_first_argument_a_symbol_and_second_argument_a_hash
52
- test_result = run_as_test do
53
- DeprecationDisabler.disable_deprecations do
54
- s = mock(:my_method, :another_method => 123)
55
- assert_nil s.my_method
56
- end
57
- expected_warning = 'In this case the 2nd argument for `mock(:#my_method, ...)` is ignored, but in the future a Hash of expected methods vs return values will be respected.'
58
- assert Mocha::Deprecation.messages.last(2).include?(expected_warning)
59
- end
60
- assert_passed(test_result)
61
- end
62
-
63
- def test_stub_built_with_first_argument_a_symbol_and_second_argument_a_hash
64
- test_result = run_as_test do
65
- DeprecationDisabler.disable_deprecations do
66
- s = stub(:my_method, :another_method => 123)
67
- assert_nil s.my_method
68
- end
69
- expected_warning = 'In this case the 2nd argument for `stub(:#my_method, ...)` is ignored, but in the future a Hash of stubbed methods vs return values will be respected.'
70
- assert Mocha::Deprecation.messages.last(2).include?(expected_warning)
71
- end
72
- assert_passed(test_result)
73
- end
74
-
75
- def test_stub_everything_built_with_single_symbol_argument
76
- test_result = run_as_test do
77
- DeprecationDisabler.disable_deprecations do
78
- s = stub_everything(:my_method)
79
- assert_nil s.my_method
80
- end
81
- expected_warning = 'Explicitly include `my_method` in Hash of stubbed methods vs return values, e.g. `stub_everything(:my_method => nil)`.'
82
- assert_equal expected_warning, Mocha::Deprecation.messages.last
83
- end
84
- assert_passed(test_result)
85
- end
86
-
87
- def test_stub_everything_built_with_first_argument_a_symbol_and_second_argument_a_hash
88
- test_result = run_as_test do
89
- DeprecationDisabler.disable_deprecations do
90
- s = stub_everything(:my_method, :another_method => 123)
91
- assert_nil s.my_method
92
- end
93
- expected_warning = 'In this case the 2nd argument for `stub_everything(:#my_method, ...)` is ignored, but in the future a Hash of stubbed methods vs return values will be respected.' # rubocop:disable Metrics/LineLength
94
- assert Mocha::Deprecation.messages.last(2).include?(expected_warning)
95
- end
96
- assert_passed(test_result)
97
- end
98
- end
@@ -1,191 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
- require 'mocha/deprecation'
4
- require 'deprecation_disabler'
5
-
6
- class MockTest < Mocha::TestCase
7
- include AcceptanceTest
8
- include Mocha
9
-
10
- def setup
11
- setup_acceptance_test
12
- end
13
-
14
- def teardown
15
- teardown_acceptance_test
16
- end
17
-
18
- def test_should_build_mock_and_explicitly_add_an_expectation_which_is_satisfied
19
- test_result = run_as_test do
20
- foo = mock
21
- foo.expects(:bar)
22
- foo.bar
23
- end
24
- assert_passed(test_result)
25
- end
26
-
27
- def test_should_build_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
28
- test_result = run_as_test do
29
- foo = mock
30
- foo.expects(:bar)
31
- end
32
- assert_failed(test_result)
33
- end
34
-
35
- def test_should_build_string_named_mock_and_explicitly_add_an_expectation_which_is_satisfied
36
- test_result = run_as_test do
37
- foo = mock('foo')
38
- foo.expects(:bar)
39
- foo.bar
40
- end
41
- assert_passed(test_result)
42
- end
43
-
44
- def test_should_build_symbol_named_mock_and_explicitly_add_an_expectation_which_is_satisfied
45
- test_result = run_as_test do
46
- Mocha::Configuration.override(:reinstate_undocumented_behaviour_from_v1_9 => false) do
47
- DeprecationDisabler.disable_deprecations do
48
- foo = mock(:foo)
49
- foo.expects(:bar)
50
- foo.bar
51
- end
52
- end
53
- end
54
- assert_passed(test_result)
55
- end
56
-
57
- def test_should_build_string_named_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
58
- test_result = run_as_test do
59
- foo = mock('foo')
60
- foo.expects(:bar)
61
- end
62
- assert_failed(test_result)
63
- end
64
-
65
- def test_should_build_symbol_named_mock_and_explicitly_add_an_expectation_which_is_not_satisfied
66
- test_result = run_as_test do
67
- DeprecationDisabler.disable_deprecations do
68
- foo = mock(:foo)
69
- foo.expects(:bar)
70
- end
71
- end
72
- assert_failed(test_result)
73
- end
74
-
75
- def test_should_build_mock_incorporating_two_expectations_which_are_satisifed
76
- test_result = run_as_test do
77
- foo = mock(:bar => 'bar', :baz => 'baz')
78
- foo.bar
79
- foo.baz
80
- end
81
- assert_passed(test_result)
82
- end
83
-
84
- def test_should_build_mock_incorporating_two_expectations_the_first_of_which_is_not_satisifed
85
- test_result = run_as_test do
86
- foo = mock(:bar => 'bar', :baz => 'baz')
87
- foo.baz
88
- end
89
- assert_failed(test_result)
90
- end
91
-
92
- def test_should_build_mock_incorporating_two_expectations_the_second_of_which_is_not_satisifed
93
- test_result = run_as_test do
94
- foo = mock(:bar => 'bar', :baz => 'baz')
95
- foo.bar
96
- end
97
- assert_failed(test_result)
98
- end
99
-
100
- def test_should_build_string_named_mock_incorporating_two_expectations_which_are_satisifed
101
- test_result = run_as_test do
102
- foo = mock('foo', :bar => 'bar', :baz => 'baz')
103
- foo.bar
104
- foo.baz
105
- end
106
- assert_passed(test_result)
107
- end
108
-
109
- def test_should_build_symbol_named_mock_incorporating_two_expectations_which_are_satisifed
110
- test_result = run_as_test do
111
- Mocha::Configuration.override(:reinstate_undocumented_behaviour_from_v1_9 => false) do
112
- DeprecationDisabler.disable_deprecations do
113
- foo = mock(:foo, :bar => 'bar', :baz => 'baz')
114
- foo.bar
115
- foo.baz
116
- end
117
- end
118
- end
119
- assert_passed(test_result)
120
- end
121
-
122
- def test_should_build_string_named_mock_incorporating_two_expectations_the_first_of_which_is_not_satisifed
123
- test_result = run_as_test do
124
- foo = mock('foo', :bar => 'bar', :baz => 'baz')
125
- foo.baz
126
- end
127
- assert_failed(test_result)
128
- end
129
-
130
- def test_should_build_symbol_named_mock_incorporating_two_expectations_the_first_of_which_is_not_satisifed
131
- test_result = run_as_test do
132
- DeprecationDisabler.disable_deprecations do
133
- foo = mock(:foo, :bar => 'bar', :baz => 'baz')
134
- foo.baz
135
- end
136
- end
137
- assert_failed(test_result)
138
- end
139
-
140
- def test_should_build_string_named_mock_incorporating_two_expectations_the_second_of_which_is_not_satisifed
141
- test_result = run_as_test do
142
- foo = mock('foo', :bar => 'bar', :baz => 'baz')
143
- foo.bar
144
- end
145
- assert_failed(test_result)
146
- end
147
-
148
- def test_should_build_symbol_named_mock_incorporating_two_expectations_the_second_of_which_is_not_satisifed
149
- test_result = run_as_test do
150
- DeprecationDisabler.disable_deprecations do
151
- foo = mock(:foo, :bar => 'bar', :baz => 'baz')
152
- foo.bar
153
- end
154
- end
155
- assert_failed(test_result)
156
- end
157
-
158
- class Foo
159
- class << self
160
- attr_accessor :logger
161
- end
162
-
163
- def use_the_mock
164
- self.class.logger.log('Foo was here')
165
- end
166
- end
167
-
168
- # rubocop:disable Metrics/AbcSize
169
- def test_should_display_deprecation_warning_if_mock_receives_invocations_in_another_test
170
- use_mock_test_result = run_as_test do
171
- Foo.logger = mock('Logger')
172
- Foo.logger.expects(:log).with('Foo was here')
173
- Foo.new.use_the_mock
174
- end
175
- assert_passed(use_mock_test_result)
176
-
177
- reuse_mock_test_result = run_as_test do
178
- DeprecationDisabler.disable_deprecations do
179
- Foo.logger.expects(:log).with('Foo was here')
180
- Foo.new.use_the_mock
181
- end
182
- end
183
- assert_passed(reuse_mock_test_result)
184
- assert message = Deprecation.messages.last
185
- assert message.include?('#<Mock:Logger> was instantiated in one test but it is receiving invocations within another test.')
186
- assert message.include?('This can lead to unintended interactions between tests and hence unexpected test failures.')
187
- assert message.include?('Ensure that every test correctly cleans up any state that it introduces.')
188
- assert message.include?('A Mocha::StubbingError will be raised in this scenario in the future.')
189
- end
190
- # rubocop:enable Metrics/AbcSize
191
- end
@@ -1,75 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class MockedMethodDispatchTest < 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_find_latest_matching_expectation
15
- test_result = run_as_test do
16
- mock = mock()
17
- mock.stubs(:method).returns(1)
18
- mock.stubs(:method).returns(2)
19
- assert_equal 2, mock.method
20
- assert_equal 2, mock.method
21
- assert_equal 2, mock.method
22
- end
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_should_find_latest_expectation_which_has_not_stopped_matching
27
- test_result = run_as_test do
28
- mock = mock()
29
- mock.stubs(:method).returns(1)
30
- mock.stubs(:method).once.returns(2)
31
- assert_equal 2, mock.method
32
- assert_equal 1, mock.method
33
- assert_equal 1, mock.method
34
- end
35
- assert_passed(test_result)
36
- end
37
-
38
- def test_should_keep_finding_later_stub_and_so_never_satisfy_earlier_expectation
39
- test_result = run_as_test do
40
- mock = mock()
41
- mock.expects(:method).returns(1)
42
- mock.stubs(:method).returns(2)
43
- assert_equal 2, mock.method
44
- assert_equal 2, mock.method
45
- assert_equal 2, mock.method
46
- end
47
- assert_failed(test_result)
48
- end
49
-
50
- def test_should_find_later_expectation_until_it_stops_matching_then_find_earlier_stub
51
- test_result = run_as_test do
52
- mock = mock()
53
- mock.stubs(:method).returns(1)
54
- mock.expects(:method).returns(2)
55
- assert_equal 2, mock.method
56
- assert_equal 1, mock.method
57
- assert_equal 1, mock.method
58
- end
59
- assert_passed(test_result)
60
- end
61
-
62
- def test_should_find_latest_expectation_with_range_of_expected_invocation_count_which_has_not_stopped_matching
63
- test_result = run_as_test do
64
- mock = mock()
65
- mock.stubs(:method).returns(1)
66
- mock.stubs(:method).times(2..3).returns(2)
67
- assert_equal 2, mock.method
68
- assert_equal 2, mock.method
69
- assert_equal 2, mock.method
70
- assert_equal 1, mock.method
71
- assert_equal 1, mock.method
72
- end
73
- assert_passed(test_result)
74
- end
75
- end
@@ -1,66 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class FailureMessageTest < 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_include_unexpected_invocation_in_unsatisfied_expectation_message
15
- test_result = run_as_test do
16
- mock = mock('mock')
17
- mock.expects(:method_one).once
18
- 2.times { mock.method_one }
19
- end
20
- assert_failed(test_result)
21
- assert_equal [
22
- 'unexpected invocation: #<Mock:mock>.method_one()',
23
- 'unsatisfied expectations:',
24
- '- expected exactly once, invoked twice: #<Mock:mock>.method_one(any_parameters)'
25
- ], test_result.failure_message_lines
26
- end
27
-
28
- def test_should_report_satisfied_expectations_as_well_as_unsatisfied_expectations
29
- test_result = run_as_test do
30
- mock = mock('mock')
31
- mock.expects(:method_one).once
32
- mock.expects(:method_two).twice
33
- 1.times { mock.method_one }
34
- 1.times { mock.method_two }
35
- end
36
- assert_failed(test_result)
37
- assert_equal [
38
- 'not all expectations were satisfied',
39
- 'unsatisfied expectations:',
40
- '- expected exactly twice, invoked once: #<Mock:mock>.method_two(any_parameters)',
41
- 'satisfied expectations:',
42
- '- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)'
43
- ], test_result.failure_message_lines
44
- end
45
-
46
- def test_should_report_multiple_satisfied_expectations
47
- test_result = run_as_test do
48
- mock = mock('mock')
49
- mock.expects(:method_one).once
50
- mock.expects(:method_two).twice
51
- mock.expects(:method_three).times(3)
52
- 1.times { mock.method_one }
53
- 2.times { mock.method_two }
54
- 2.times { mock.method_three }
55
- end
56
- assert_failed(test_result)
57
- assert_equal [
58
- 'not all expectations were satisfied',
59
- 'unsatisfied expectations:',
60
- '- expected exactly 3 times, invoked twice: #<Mock:mock>.method_three(any_parameters)',
61
- 'satisfied expectations:',
62
- '- expected exactly twice, invoked twice: #<Mock:mock>.method_two(any_parameters)',
63
- '- expected exactly once, invoked once: #<Mock:mock>.method_one(any_parameters)'
64
- ], test_result.failure_message_lines
65
- end
66
- end
@@ -1,59 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class MultipleYieldingTest < 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
- def test_yields_values_multiple_times_when_stubbed_method_is_invoked
16
- test_result = run_as_test do
17
- m = mock('m')
18
- m.stubs(:foo).multiple_yields([1], [2, 3])
19
- yielded = []
20
- m.foo { |*args| yielded << args }
21
- assert_equal [[1], [2, 3]], yielded
22
- end
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_yields_values_multiple_times_when_multiple_yields_arguments_are_not_arrays
27
- test_result = run_as_test do
28
- m = mock('m')
29
- m.stubs(:foo).multiple_yields(1, { :b => 2 }, '3')
30
- yielded = []
31
- m.foo { |*args| yielded << args }
32
- assert_equal [[1], [{ :b => 2 }], ['3']], yielded
33
- end
34
- assert_passed(test_result)
35
- end
36
-
37
- def test_raises_local_jump_error_if_instructed_to_multiple_yield_but_no_block_given
38
- test_result = run_as_test do
39
- Mocha::Configuration.override(:reinstate_undocumented_behaviour_from_v1_9 => false) do
40
- m = mock('m')
41
- m.stubs(:foo).multiple_yields([])
42
- assert_raises(LocalJumpError) { m.foo }
43
- end
44
- end
45
- assert_passed(test_result)
46
- end
47
-
48
- def test_yields_different_values_on_consecutive_invocations
49
- test_result = run_as_test do
50
- m = mock('m')
51
- m.stubs(:foo).multiple_yields([0], [1, 2]).then.multiple_yields([3], [4, 5])
52
- yielded = []
53
- m.foo { |*args| yielded << args }
54
- m.foo { |*args| yielded << args }
55
- assert_equal [[0], [1, 2], [3], [4, 5]], yielded
56
- end
57
- assert_passed(test_result)
58
- end
59
- end