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,88 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'execution_point'
3
-
4
- class StubbingFrozenObjectTest < 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
- # rubocop:disable Style/Semicolon
16
- def test_should_fail_fast_if_attempting_to_stub_method_on_frozen_object
17
- object = Object.new
18
- object.freeze
19
- execution_point = nil
20
- test_result = run_as_test do
21
- execution_point = ExecutionPoint.current; object.stubs(:stubbed_method)
22
- end
23
- assert_failed(test_result)
24
- assert_equal 1, test_result.error_count
25
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
26
- end
27
-
28
- def test_should_fail_fast_if_attempting_to_expect_method_on_frozen_object
29
- object = Object.new
30
- object.freeze
31
- execution_point = nil
32
- test_result = run_as_test do
33
- execution_point = ExecutionPoint.current; object.expects(:stubbed_method)
34
- end
35
- assert_failed(test_result)
36
- assert_equal 1, test_result.error_count
37
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
38
- end
39
-
40
- def test_should_fail_fast_if_attempting_to_stub_method_on_frozen_class
41
- klass = Class.new
42
- klass.freeze
43
- execution_point = nil
44
- test_result = run_as_test do
45
- execution_point = ExecutionPoint.current; klass.stubs(:stubbed_method)
46
- end
47
- assert_failed(test_result)
48
- assert_equal 1, test_result.error_count
49
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
50
- end
51
-
52
- def test_should_fail_fast_if_attempting_to_expect_method_on_frozen_class
53
- klass = Class.new
54
- klass.freeze
55
- execution_point = nil
56
- test_result = run_as_test do
57
- execution_point = ExecutionPoint.current; klass.expects(:stubbed_method)
58
- end
59
- assert_failed(test_result)
60
- assert_equal 1, test_result.error_count
61
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
62
- end
63
-
64
- def test_should_fail_fast_if_attempting_to_stub_method_on_any_instance_of_frozen_class
65
- klass = Class.new
66
- klass.freeze
67
- execution_point = nil
68
- test_result = run_as_test do
69
- execution_point = ExecutionPoint.current; klass.any_instance.stubs(:stubbed_method)
70
- end
71
- assert_failed(test_result)
72
- assert_equal 1, test_result.error_count
73
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
74
- end
75
-
76
- def test_should_fail_fast_if_attempting_to_expect_method_on_any_instance_of_frozen_class
77
- klass = Class.new
78
- klass.freeze
79
- execution_point = nil
80
- test_result = run_as_test do
81
- execution_point = ExecutionPoint.current; klass.any_instance.expects(:stubbed_method)
82
- end
83
- assert_failed(test_result)
84
- assert_equal 1, test_result.error_count
85
- assert_equal execution_point, ExecutionPoint.new(test_result.errors[0].exception.backtrace)
86
- end
87
- # rubocop:enable Style/Semicolon
88
- end
@@ -1,52 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
-
3
- class StubbingMethodAcceptingBlockParameterTest < 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_class_method_accepting_block_parameter_should_restore_original_method
15
- klass = Class.new do
16
- def self.my_class_method(&block)
17
- block.call
18
- end
19
- end
20
- test_result = run_as_test do
21
- klass.stubs(:my_class_method)
22
- end
23
- assert_passed(test_result)
24
- assert_equal :return_value, (klass.my_class_method { :return_value })
25
- end
26
-
27
- def test_stubbing_instance_method_accepting_block_parameter_should_restore_original_method
28
- instance = Class.new do
29
- def my_instance_method
30
- yield
31
- end
32
- end.new
33
- test_result = run_as_test do
34
- instance.stubs(:my_instance_method)
35
- end
36
- assert_passed(test_result)
37
- assert_equal :return_value, (instance.my_instance_method { :return_value })
38
- end
39
-
40
- def test_stubbing_any_instance_method_accepting_block_parameter_should_restore_original_method
41
- klass = Class.new do
42
- def my_instance_method
43
- yield
44
- end
45
- end
46
- test_result = run_as_test do
47
- klass.any_instance.stubs(:my_instance_method)
48
- end
49
- assert_passed(test_result)
50
- assert_equal :return_value, (klass.new.my_instance_method { :return_value })
51
- end
52
- end
@@ -1,63 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingMethodUnnecessarilyTest < 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_unnecessarily
16
- Mocha.configure { |c| c.stubbing_method_unnecessarily = :allow }
17
- test_result = run_as_test do
18
- mock = mock('mock')
19
- mock.stubs(:public_method)
20
- end
21
- assert_passed(test_result)
22
- assert !@logger.warnings.include?('stubbing method unnecessarily: #<Mock:mock>.public_method(any_parameters)')
23
- end
24
-
25
- def test_should_warn_when_stubbing_method_unnecessarily
26
- Mocha.configure { |c| c.stubbing_method_unnecessarily = :warn }
27
- test_result = run_as_test do
28
- mock = mock('mock')
29
- mock.stubs(:public_method)
30
- end
31
- assert_passed(test_result)
32
- assert @logger.warnings.include?('stubbing method unnecessarily: #<Mock:mock>.public_method(any_parameters)')
33
- end
34
-
35
- def test_should_prevent_stubbing_method_unnecessarily
36
- Mocha.configure { |c| c.stubbing_method_unnecessarily = :prevent }
37
- test_result = run_as_test do
38
- mock = mock('mock')
39
- mock.stubs(:public_method)
40
- end
41
- assert_failed(test_result)
42
- assert test_result.error_messages.include?('Mocha::StubbingError: stubbing method unnecessarily: #<Mock:mock>.public_method(any_parameters)')
43
- end
44
-
45
- def test_should_default_to_allow_stubbing_method_unnecessarily
46
- test_result = run_as_test do
47
- mock = mock('mock')
48
- mock.stubs(:public_method)
49
- end
50
- assert_passed(test_result)
51
- assert !@logger.warnings.include?('stubbing method unnecessarily: #<Mock:mock>.public_method(any_parameters)')
52
- end
53
-
54
- def test_should_allow_stubbing_method_when_stubbed_method_is_invoked
55
- Mocha.configure { |c| c.stubbing_method_unnecessarily = :prevent }
56
- test_result = run_as_test do
57
- mock = mock('mock')
58
- mock.stubs(:public_method)
59
- mock.public_method
60
- end
61
- assert_passed(test_result)
62
- end
63
- end
@@ -1,60 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNilTest < 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 RUBY_VERSION < '2.2.0'
16
- def test_should_allow_stubbing_method_on_nil
17
- Mocha.configure { |c| c.stubbing_method_on_nil = :allow }
18
- test_result = run_as_test do
19
- nil.stubs(:stubbed_method)
20
- end
21
- assert_passed(test_result)
22
- assert !@logger.warnings.include?('stubbing method on nil: nil.stubbed_method')
23
- end
24
-
25
- def test_should_warn_on_stubbing_method_on_nil
26
- Mocha.configure { |c| c.stubbing_method_on_nil = :warn }
27
- test_result = run_as_test do
28
- nil.stubs(:stubbed_method)
29
- end
30
- assert_passed(test_result)
31
- assert @logger.warnings.include?('stubbing method on nil: nil.stubbed_method')
32
- end
33
-
34
- def test_should_prevent_stubbing_method_on_nil
35
- Mocha.configure { |c| c.stubbing_method_on_nil = :prevent }
36
- test_result = run_as_test do
37
- nil.stubs(:stubbed_method)
38
- end
39
- assert_failed(test_result)
40
- assert test_result.error_messages.include?('Mocha::StubbingError: stubbing method on nil: nil.stubbed_method')
41
- end
42
-
43
- def test_should_default_to_prevent_stubbing_method_on_non_mock_object
44
- test_result = run_as_test do
45
- nil.stubs(:stubbed_method)
46
- end
47
- assert_failed(test_result)
48
- assert test_result.error_messages.include?('Mocha::StubbingError: stubbing method on nil: nil.stubbed_method')
49
- end
50
-
51
- def test_should_allow_stubbing_method_on_non_nil_object
52
- Mocha.configure { |c| c.stubbing_method_on_nil = :prevent }
53
- object = Object.new
54
- test_result = run_as_test do
55
- object.stubs(:stubbed_method)
56
- end
57
- assert_passed(test_result)
58
- end
59
- end
60
- end
@@ -1,157 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonExistentAnyInstanceMethodTest < 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_non_existent_any_instance_method
16
- Mocha.configure { |c| c.stubbing_non_existent_method = :allow }
17
- klass = Class.new
18
- test_result = run_as_test do
19
- klass.any_instance.stubs(:non_existent_method)
20
- end
21
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
22
- assert_passed(test_result)
23
- end
24
-
25
- def test_should_warn_when_stubbing_non_existent_any_instance_method
26
- Mocha.configure { |c| c.stubbing_non_existent_method = :warn }
27
- klass = Class.new
28
- test_result = run_as_test do
29
- klass.any_instance.stubs(:non_existent_method)
30
- end
31
- assert_passed(test_result)
32
- assert @logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
33
- end
34
-
35
- def test_should_prevent_stubbing_non_existent_any_instance_method
36
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
37
- klass = Class.new
38
- test_result = run_as_test do
39
- klass.any_instance.stubs(:non_existent_method)
40
- end
41
- assert_failed(test_result)
42
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
43
- end
44
-
45
- def test_should_default_to_allow_stubbing_non_existent_any_instance_method
46
- klass = Class.new
47
- test_result = run_as_test do
48
- klass.any_instance.stubs(:non_existent_method)
49
- end
50
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
51
- assert_passed(test_result)
52
- end
53
-
54
- def test_should_allow_stubbing_existing_public_any_instance_method
55
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
56
- klass = Class.new do
57
- def existing_public_method; end
58
- public :existing_public_method
59
- end
60
- test_result = run_as_test do
61
- klass.any_instance.stubs(:existing_public_method)
62
- end
63
- assert_passed(test_result)
64
- end
65
-
66
- def test_should_allow_stubbing_method_to_which_any_instance_responds
67
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
68
- klass = Class.new do
69
- def respond_to?(method, _include_private = false)
70
- (method == :method_to_which_instance_responds)
71
- end
72
- end
73
- test_result = run_as_test do
74
- klass.any_instance.stubs(:method_to_which_instance_responds)
75
- end
76
- assert_passed(test_result)
77
- end
78
-
79
- def test_should_default_to_allowing_stubbing_method_if_responds_to_depends_on_calling_initialize
80
- klass = Class.new do
81
- def initialize(attrs = {})
82
- @attributes = attrs
83
- end
84
-
85
- def respond_to?(method, _include_private = false)
86
- @attributes.key?(method) ? @attributes[method] : super
87
- end
88
- end
89
- test_result = run_as_test do
90
- klass.any_instance.stubs(:foo)
91
- end
92
- assert_passed(test_result)
93
- end
94
-
95
- def test_should_allow_stubbing_existing_protected_any_instance_method
96
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
97
- klass = Class.new do
98
- def existing_protected_method; end
99
- protected :existing_protected_method
100
- end
101
- test_result = run_as_test do
102
- klass.any_instance.stubs(:existing_protected_method)
103
- end
104
- assert_passed(test_result)
105
- end
106
-
107
- def test_should_allow_stubbing_existing_private_any_instance_method
108
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
109
- klass = Class.new do
110
- def existing_private_method; end
111
- private :existing_private_method
112
- end
113
- test_result = run_as_test do
114
- klass.any_instance.stubs(:existing_private_method)
115
- end
116
- assert_passed(test_result)
117
- end
118
-
119
- def test_should_allow_stubbing_existing_public_any_instance_superclass_method
120
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
121
- superklass = Class.new do
122
- def existing_public_method; end
123
- public :existing_public_method
124
- end
125
- klass = Class.new(superklass)
126
- test_result = run_as_test do
127
- klass.any_instance.stubs(:existing_public_method)
128
- end
129
- assert_passed(test_result)
130
- end
131
-
132
- def test_should_allow_stubbing_existing_protected_any_instance_superclass_method
133
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
134
- superklass = Class.new do
135
- def existing_protected_method; end
136
- protected :existing_protected_method
137
- end
138
- klass = Class.new(superklass)
139
- test_result = run_as_test do
140
- klass.any_instance.stubs(:existing_protected_method)
141
- end
142
- assert_passed(test_result)
143
- end
144
-
145
- def test_should_allow_stubbing_existing_private_any_instance_superclass_method
146
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
147
- superklass = Class.new do
148
- def existing_private_method; end
149
- private :existing_private_method
150
- end
151
- klass = Class.new(superklass)
152
- test_result = run_as_test do
153
- klass.any_instance.stubs(:existing_private_method)
154
- end
155
- assert_passed(test_result)
156
- end
157
- end
@@ -1,157 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonExistentClassMethodTest < 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_non_existent_class_method
16
- Mocha.configure { |c| c.stubbing_non_existent_method = :allow }
17
- klass = Class.new
18
- test_result = run_as_test do
19
- klass.stubs(:non_existent_method)
20
- end
21
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
22
- assert_passed(test_result)
23
- end
24
-
25
- def test_should_warn_when_stubbing_non_existent_class_method
26
- Mocha.configure { |c| c.stubbing_non_existent_method = :warn }
27
- klass = Class.new
28
- test_result = run_as_test do
29
- klass.stubs(:non_existent_method)
30
- end
31
- assert_passed(test_result)
32
- assert @logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
33
- end
34
-
35
- def test_should_prevent_stubbing_non_existent_class_method
36
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
37
- klass = Class.new
38
- test_result = run_as_test do
39
- klass.stubs(:non_existent_method)
40
- end
41
- assert_failed(test_result)
42
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
43
- end
44
-
45
- def test_should_default_to_allow_stubbing_non_existent_class_method
46
- klass = Class.new
47
- test_result = run_as_test do
48
- klass.stubs(:non_existent_method)
49
- end
50
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
51
- assert_passed(test_result)
52
- end
53
-
54
- # rubocop:disable Lint/DuplicateMethods
55
- def test_should_allow_stubbing_existing_public_class_method
56
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
57
- klass = Class.new do
58
- class << self
59
- def existing_public_method; end
60
- public :existing_public_method
61
- end
62
- end
63
- test_result = run_as_test do
64
- klass.stubs(:existing_public_method)
65
- end
66
- assert_passed(test_result)
67
- end
68
-
69
- def test_should_allow_stubbing_method_to_which_class_responds
70
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
71
- klass = Class.new do
72
- class << self
73
- def respond_to?(method, _include_private = false)
74
- (method == :method_to_which_class_responds)
75
- end
76
- end
77
- end
78
- test_result = run_as_test do
79
- klass.stubs(:method_to_which_class_responds)
80
- end
81
- assert_passed(test_result)
82
- end
83
-
84
- def test_should_allow_stubbing_existing_protected_class_method
85
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
86
- klass = Class.new do
87
- class << self
88
- def existing_protected_method; end
89
- protected :existing_protected_method
90
- end
91
- end
92
- test_result = run_as_test do
93
- klass.stubs(:existing_protected_method)
94
- end
95
- assert_passed(test_result)
96
- end
97
-
98
- def test_should_allow_stubbing_existing_private_class_method
99
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
100
- klass = Class.new do
101
- class << self
102
- def existing_private_method; end
103
- private :existing_private_method
104
- end
105
- end
106
- test_result = run_as_test do
107
- klass.stubs(:existing_private_method)
108
- end
109
- assert_passed(test_result)
110
- end
111
-
112
- def test_should_allow_stubbing_existing_public_superclass_method
113
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
114
- superklass = Class.new do
115
- class << self
116
- def existing_public_method; end
117
- public :existing_public_method
118
- end
119
- end
120
- klass = Class.new(superklass)
121
- test_result = run_as_test do
122
- klass.stubs(:existing_public_method)
123
- end
124
- assert_passed(test_result)
125
- end
126
-
127
- def test_should_allow_stubbing_existing_protected_superclass_method
128
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
129
- superklass = Class.new do
130
- class << self
131
- def existing_protected_method; end
132
- protected :existing_protected_method
133
- end
134
- end
135
- klass = Class.new(superklass)
136
- test_result = run_as_test do
137
- klass.stubs(:existing_protected_method)
138
- end
139
- assert_passed(test_result)
140
- end
141
-
142
- def test_should_allow_stubbing_existing_private_superclass_method
143
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
144
- superklass = Class.new do
145
- class << self
146
- def existing_private_method; end
147
- protected :existing_private_method
148
- end
149
- end
150
- klass = Class.new(superklass)
151
- test_result = run_as_test do
152
- klass.stubs(:existing_private_method)
153
- end
154
- assert_passed(test_result)
155
- end
156
- # rubocop:enable Lint/DuplicateMethods
157
- end