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,70 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingOnNonMockObjectTest < 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_should_allow_stubbing_method_on_non_mock_object
16
- Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :allow }
17
- non_mock_object = Class.new do
18
- def existing_method; end
19
- end
20
- test_result = run_as_test do
21
- non_mock_object.stubs(:existing_method)
22
- end
23
- assert_passed(test_result)
24
- assert !@logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
25
- end
26
-
27
- def test_should_warn_on_stubbing_method_on_non_mock_object
28
- Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :warn }
29
- non_mock_object = Class.new do
30
- def existing_method; end
31
- end
32
- test_result = run_as_test do
33
- non_mock_object.stubs(:existing_method)
34
- end
35
- assert_passed(test_result)
36
- assert @logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
37
- end
38
-
39
- def test_should_prevent_stubbing_method_on_non_mock_object
40
- Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :prevent }
41
- non_mock_object = Class.new do
42
- def existing_method; end
43
- end
44
- test_result = run_as_test do
45
- non_mock_object.stubs(:existing_method)
46
- end
47
- assert_failed(test_result)
48
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
49
- end
50
-
51
- def test_should_default_to_allow_stubbing_method_on_non_mock_object
52
- non_mock_object = Class.new do
53
- def existing_method; end
54
- end
55
- test_result = run_as_test do
56
- non_mock_object.stubs(:existing_method)
57
- end
58
- assert_passed(test_result)
59
- assert !@logger.warnings.include?("stubbing method on non-mock object: #{non_mock_object.mocha_inspect}.existing_method")
60
- end
61
-
62
- def test_should_allow_stubbing_method_on_mock_object
63
- Mocha.configure { |c| c.stubbing_method_on_non_mock_object = :prevent }
64
- test_result = run_as_test do
65
- mock = mock('mock')
66
- mock.stubs(:any_method)
67
- end
68
- assert_passed(test_result)
69
- end
70
- end
@@ -1,33 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class StubbingSameClassMethodOnParentAndChildClassTest < 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_stubbing_same_method_on_parent_and_child_classes
15
- parent_class = Class.new do
16
- def self.foo
17
- 'Parent.foo'
18
- end
19
- end
20
- child_class = Class.new(parent_class)
21
- test_result = run_as_tests(
22
- :test_1 => lambda {
23
- parent_class.stubs(:foo).returns('stubbed Parent.foo')
24
- child_class.stubs(:foo).returns('stubbed Child.foo')
25
- },
26
- :test_2 => lambda {
27
- parent_class.foo
28
- child_class.foo
29
- }
30
- )
31
- assert_passed(test_result)
32
- end
33
- end
@@ -1,42 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class ThrowTest < 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_throw_tag
15
- test_result = run_as_test do
16
- foo = stub('foo')
17
- foo.stubs(:bar).throws(:tag)
18
- assert_throws(:tag) { foo.bar }
19
- end
20
- assert_passed(test_result)
21
- end
22
-
23
- def test_should_throw_with_return_value
24
- test_result = run_as_test do
25
- foo = stub('foo')
26
- foo.stubs(:bar).throws(:tag, 'return-value')
27
- return_value = catch(:tag) { foo.bar }
28
- assert_equal 'return-value', return_value
29
- end
30
- assert_passed(test_result)
31
- end
32
-
33
- def test_should_throw_two_different_tags
34
- test_result = run_as_test do
35
- foo = stub('foo')
36
- foo.stubs(:bar).throws(:tag_one).then.throws(:tag_two)
37
- assert_throws(:tag_one) { foo.bar }
38
- assert_throws(:tag_two) { foo.bar }
39
- end
40
- assert_passed(test_result)
41
- end
42
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class UnexpectedInvocationTest < 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_avoid_recursion_when_unexpected_invocation_exception_message_depends_on_uninspectable_object
15
- test_result = run_as_test do
16
- instance = Class.new.new
17
- instance.expects(:inspect).never
18
- instance.inspect(1, 2, 'foo')
19
- end
20
- assert_failed(test_result)
21
- assert_equal 'unexpected invocation: inspect(1, 2, foo)', test_result.failure_message_lines[0]
22
- end
23
- end
@@ -1,194 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class UnstubbingTest < 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_unstubbing_an_instance_method_should_restore_original_behaviour
15
- klass = Class.new do
16
- def my_instance_method
17
- :original_return_value
18
- end
19
- end
20
- test_result = run_as_test do
21
- object = klass.new
22
- object.stubs(:my_instance_method).returns(:new_return_value)
23
- object.unstub(:my_instance_method)
24
- assert_equal :original_return_value, object.my_instance_method
25
- end
26
- assert_passed(test_result)
27
- end
28
-
29
- def test_unstubbing_a_class_method_should_restore_original_behaviour
30
- klass = Class.new do
31
- def self.my_class_method
32
- :original_return_value
33
- end
34
- end
35
- test_result = run_as_test do
36
- klass.stubs(:my_class_method).returns(:new_return_value)
37
- klass.unstub(:my_class_method)
38
- assert_equal :original_return_value, klass.my_class_method
39
- end
40
- assert_passed(test_result)
41
- end
42
-
43
- def test_unstubbing_a_module_method_should_restore_original_behaviour
44
- mod = Module.new do
45
- def self.my_module_method
46
- :original_return_value
47
- end
48
- end
49
- test_result = run_as_test do
50
- mod.stubs(:my_module_method).returns(:new_return_value)
51
- mod.unstub(:my_module_method)
52
- assert_equal :original_return_value, mod.my_module_method
53
- end
54
- assert_passed(test_result)
55
- end
56
-
57
- def test_unstubbing_a_module_method_defined_like_fileutils_in_ruby_2_0_should_restore_original_behaviour
58
- mod = Module.new do
59
- def my_module_method
60
- :original_return_value
61
- end
62
- private :my_module_method
63
- extend self
64
- class << self
65
- public :my_module_method
66
- end
67
- end
68
- test_result = run_as_test do
69
- mod.stubs(:my_module_method).returns(:new_return_value)
70
- mod.unstub(:my_module_method)
71
- assert_equal :original_return_value, mod.my_module_method
72
- end
73
- assert_passed(test_result)
74
- end
75
-
76
- def test_unstubbing_an_any_instance_method_should_restore_original_behaviour
77
- klass = Class.new do
78
- def my_instance_method
79
- :original_return_value
80
- end
81
- end
82
- test_result = run_as_test do
83
- object = klass.new
84
- klass.any_instance.stubs(:my_instance_method).returns(:new_return_value)
85
- klass.any_instance.unstub(:my_instance_method)
86
- assert_equal :original_return_value, object.my_instance_method
87
- end
88
- assert_passed(test_result)
89
- end
90
-
91
- def test_unstubbing_multiple_methods_should_restore_original_behaviour
92
- klass = Class.new do
93
- def my_first_instance_method
94
- :original_return_value
95
- end
96
-
97
- def my_second_instance_method
98
- :original_return_value
99
- end
100
- end
101
- test_result = run_as_test do
102
- object = klass.new
103
- object.stubs(:my_first_instance_method).returns(:new_return_value)
104
- object.stubs(:my_second_instance_method).returns(:new_return_value)
105
- object.unstub(:my_first_instance_method, :my_second_instance_method)
106
- assert_equal :original_return_value, object.my_first_instance_method
107
- assert_equal :original_return_value, object.my_second_instance_method
108
- end
109
- assert_passed(test_result)
110
- end
111
-
112
- def test_unstubbing_a_method_multiple_times_should_restore_original_behaviour
113
- klass = Class.new do
114
- def my_instance_method
115
- :original_return_value
116
- end
117
- end
118
- test_result = run_as_test do
119
- object = klass.new
120
- object.stubs(:my_instance_method).returns(:new_return_value)
121
- object.unstub(:my_instance_method)
122
- object.unstub(:my_instance_method)
123
- assert_equal :original_return_value, object.my_instance_method
124
- end
125
- assert_passed(test_result)
126
- end
127
-
128
- def test_unstubbing_a_non_stubbed_method_should_do_nothing
129
- klass = Class.new do
130
- def my_instance_method
131
- :original_return_value
132
- end
133
- end
134
- test_result = run_as_test do
135
- object = klass.new
136
- object.unstub(:my_instance_method)
137
- assert_equal :original_return_value, object.my_instance_method
138
- end
139
- assert_passed(test_result)
140
- end
141
-
142
- def test_unstubbing_a_method_which_was_stubbed_multiple_times_should_restore_orginal_behaviour
143
- klass = Class.new do
144
- def my_instance_method
145
- :original_return_value
146
- end
147
- end
148
- test_result = run_as_test do
149
- object = klass.new
150
- object.stubs(:my_instance_method).with(:first).returns(:first_new_return_value)
151
- object.stubs(:my_instance_method).with(:second).returns(:second_new_return_value)
152
- object.unstub(:my_instance_method)
153
- assert_equal :original_return_value, object.my_instance_method
154
- end
155
- assert_passed(test_result)
156
- end
157
-
158
- def test_unstubbing_a_method_should_not_unstub_other_stubbed_methods
159
- klass = Class.new do
160
- def my_first_instance_method
161
- :first_return_value
162
- end
163
-
164
- def my_second_instance_method
165
- :second_return_value
166
- end
167
- end
168
-
169
- test_result = run_as_test do
170
- object = klass.new
171
- object.stubs(:my_first_instance_method).returns(:first_new_return_value)
172
- object.stubs(:my_second_instance_method).returns(:second_new_return_value)
173
- object.unstub(:my_first_instance_method)
174
- assert_equal :first_return_value, object.my_first_instance_method
175
- assert_equal :second_new_return_value, object.my_second_instance_method
176
- end
177
- assert_passed(test_result)
178
- end
179
-
180
- def test_unstubbing_a_method_should_remove_all_expectations_for_that_method
181
- klass = Class.new do
182
- def my_instance_method
183
- :original_return_value
184
- end
185
- end
186
- test_result = run_as_test do
187
- object = klass.new
188
- object.expects(:my_instance_method).with(:first)
189
- object.expects(:my_instance_method).with(:second)
190
- object.unstub(:my_instance_method)
191
- end
192
- assert_passed(test_result)
193
- end
194
- end
@@ -1,80 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class YieldingTest < 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_yields_when_stubbed_method_is_invoked
15
- test_result = run_as_test do
16
- m = mock('m')
17
- m.stubs(:foo).yields
18
- yielded = false
19
- m.foo { yielded = true }
20
- assert yielded
21
- end
22
- assert_passed(test_result)
23
- end
24
-
25
- def test_raises_local_jump_error_if_instructed_to_yield_but_no_block_given
26
- test_result = run_as_test do
27
- Mocha::Configuration.override(:reinstate_undocumented_behaviour_from_v1_9 => false) do
28
- m = mock('m')
29
- m.stubs(:foo).yields
30
- assert_raises(LocalJumpError) { m.foo }
31
- end
32
- end
33
- assert_passed(test_result)
34
- end
35
-
36
- def test_yields_when_block_expected_and_block_given
37
- test_result = run_as_test do
38
- m = mock('m')
39
- m.stubs(:foo).with_block_given.yields
40
- m.stubs(:foo).with_no_block_given.returns(:bar)
41
- yielded = false
42
- m.foo { yielded = true }
43
- assert yielded
44
- end
45
- assert_passed(test_result)
46
- end
47
-
48
- def test_returns_when_no_block_expected_and_no_block_given
49
- test_result = run_as_test do
50
- m = mock('m')
51
- m.stubs(:foo).with_block_given.yields
52
- m.stubs(:foo).with_no_block_given.returns(:bar)
53
- assert_equal :bar, m.foo
54
- end
55
- assert_passed(test_result)
56
- end
57
-
58
- def test_yields_values_when_stubbed_method_is_invoked
59
- test_result = run_as_test do
60
- m = mock('m')
61
- m.stubs(:foo).yields(0, 1)
62
- yielded = []
63
- m.foo { |*args| yielded << args }
64
- assert_equal [[0, 1]], yielded
65
- end
66
- assert_passed(test_result)
67
- end
68
-
69
- def test_yields_different_values_on_consecutive_invocations
70
- test_result = run_as_test do
71
- m = mock('m')
72
- m.stubs(:foo).yields(0, 1).then.yields(2, 3)
73
- yielded = []
74
- m.foo { |*args| yielded << args }
75
- m.foo { |*args| yielded << args }
76
- assert_equal [[0, 1], [2, 3]], yielded
77
- end
78
- assert_passed(test_result)
79
- end
80
- end