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,145 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonExistentInstanceMethodTest < 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_instance_method
16
- Mocha.configure { |c| c.stubbing_non_existent_method = :allow }
17
- instance = Class.new.new
18
- test_result = run_as_test do
19
- instance.stubs(:non_existent_method)
20
- end
21
- assert !@logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
22
- assert_passed(test_result)
23
- end
24
-
25
- def test_should_warn_when_stubbing_non_existent_instance_method
26
- Mocha.configure { |c| c.stubbing_non_existent_method = :warn }
27
- instance = Class.new.new
28
- test_result = run_as_test do
29
- instance.stubs(:non_existent_method)
30
- end
31
- assert_passed(test_result)
32
- assert @logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
33
- end
34
-
35
- def test_should_prevent_stubbing_non_existent_instance_method
36
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
37
- instance = Class.new.new
38
- test_result = run_as_test do
39
- 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: #{instance.mocha_inspect}.non_existent_method")
43
- end
44
-
45
- def test_should_default_to_allow_stubbing_non_existent_instance_method
46
- instance = Class.new.new
47
- test_result = run_as_test do
48
- instance.stubs(:non_existent_method)
49
- end
50
- assert !@logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
51
- assert_passed(test_result)
52
- end
53
-
54
- def test_should_allow_stubbing_existing_public_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
- instance = klass.new
61
- test_result = run_as_test do
62
- instance.stubs(:existing_public_method)
63
- end
64
- assert_passed(test_result)
65
- end
66
-
67
- def test_should_allow_stubbing_method_to_which_instance_responds
68
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
69
- klass = Class.new do
70
- def respond_to?(method, _include_private = false)
71
- (method == :method_to_which_instance_responds)
72
- end
73
- end
74
- instance = klass.new
75
- test_result = run_as_test do
76
- instance.stubs(:method_to_which_instance_responds)
77
- end
78
- assert_passed(test_result)
79
- end
80
-
81
- def test_should_allow_stubbing_existing_protected_instance_method
82
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
83
- klass = Class.new do
84
- def existing_protected_method; end
85
- protected :existing_protected_method
86
- end
87
- instance = klass.new
88
- test_result = run_as_test do
89
- instance.stubs(:existing_protected_method)
90
- end
91
- assert_passed(test_result)
92
- end
93
-
94
- def test_should_allow_stubbing_existing_private_instance_method
95
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
96
- klass = Class.new do
97
- def existing_private_method; end
98
- private :existing_private_method
99
- end
100
- instance = klass.new
101
- test_result = run_as_test do
102
- instance.stubs(:existing_private_method)
103
- end
104
- assert_passed(test_result)
105
- end
106
-
107
- def test_should_allow_stubbing_existing_public_instance_superclass_method
108
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
109
- superklass = Class.new do
110
- def existing_public_method; end
111
- public :existing_public_method
112
- end
113
- instance = Class.new(superklass).new
114
- test_result = run_as_test do
115
- instance.stubs(:existing_public_method)
116
- end
117
- assert_passed(test_result)
118
- end
119
-
120
- def test_should_allow_stubbing_existing_protected_instance_superclass_method
121
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
122
- superklass = Class.new do
123
- def existing_protected_method; end
124
- protected :existing_protected_method
125
- end
126
- instance = Class.new(superklass).new
127
- test_result = run_as_test do
128
- instance.stubs(:existing_protected_method)
129
- end
130
- assert_passed(test_result)
131
- end
132
-
133
- def test_should_allow_stubbing_existing_private_instance_superclass_method
134
- Mocha.configure { |c| c.stubbing_non_existent_method = :prevent }
135
- superklass = Class.new do
136
- def existing_private_method; end
137
- private :existing_private_method
138
- end
139
- instance = Class.new(superklass).new
140
- test_result = run_as_test do
141
- instance.stubs(:existing_private_method)
142
- end
143
- assert_passed(test_result)
144
- end
145
- end
@@ -1,128 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonPublicAnyInstanceMethodTest < 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_private_any_instance_method
16
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
17
- klass = Class.new do
18
- def private_method; end
19
- private :private_method
20
- end
21
- test_result = run_as_test do
22
- klass.any_instance.stubs(:private_method)
23
- end
24
- assert_passed(test_result)
25
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
26
- end
27
-
28
- def test_should_allow_stubbing_protected_any_instance_method
29
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
30
- klass = Class.new do
31
- def protected_method; end
32
- protected :protected_method
33
- end
34
- test_result = run_as_test do
35
- klass.any_instance.stubs(:protected_method)
36
- end
37
- assert_passed(test_result)
38
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
39
- end
40
-
41
- def test_should_warn_when_stubbing_private_any_instance_method
42
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
43
- klass = Class.new do
44
- def private_method; end
45
- private :private_method
46
- end
47
- test_result = run_as_test do
48
- klass.any_instance.stubs(:private_method)
49
- end
50
- assert_passed(test_result)
51
- assert @logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
52
- end
53
-
54
- def test_should_warn_when_stubbing_protected_any_instance_method
55
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
56
- klass = Class.new do
57
- def protected_method; end
58
- protected :protected_method
59
- end
60
- test_result = run_as_test do
61
- klass.any_instance.stubs(:protected_method)
62
- end
63
- assert_passed(test_result)
64
- assert @logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
65
- end
66
-
67
- def test_should_prevent_stubbing_private_any_instance_method
68
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
69
- klass = Class.new do
70
- def private_method; end
71
- private :private_method
72
- end
73
- test_result = run_as_test do
74
- klass.any_instance.stubs(:private_method)
75
- end
76
- assert_failed(test_result)
77
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
78
- end
79
-
80
- def test_should_prevent_stubbing_protected_any_instance_method
81
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
82
- klass = Class.new do
83
- def protected_method; end
84
- protected :protected_method
85
- end
86
- test_result = run_as_test do
87
- klass.any_instance.stubs(:protected_method)
88
- end
89
- assert_failed(test_result)
90
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
91
- end
92
-
93
- def test_should_default_to_allow_stubbing_private_any_instance_method
94
- klass = Class.new do
95
- def private_method; end
96
- private :private_method
97
- end
98
- test_result = run_as_test do
99
- klass.any_instance.stubs(:private_method)
100
- end
101
- assert_passed(test_result)
102
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
103
- end
104
-
105
- def test_should_default_to_allow_stubbing_protected_any_instance_method
106
- klass = Class.new do
107
- def protected_method; end
108
- protected :protected_method
109
- end
110
- test_result = run_as_test do
111
- klass.any_instance.stubs(:protected_method)
112
- end
113
- assert_passed(test_result)
114
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
115
- end
116
-
117
- def test_should_allow_stubbing_public_any_instance_method
118
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
119
- klass = Class.new do
120
- def public_method; end
121
- public :public_method
122
- end
123
- test_result = run_as_test do
124
- klass.any_instance.stubs(:public_method)
125
- end
126
- assert_passed(test_result)
127
- end
128
- end
@@ -1,163 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonPublicClassMethodTest < 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 Lint/DuplicateMethods
16
- def test_should_allow_stubbing_private_class_method
17
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
18
- klass = Class.new do
19
- class << self
20
- def private_method; end
21
- private :private_method
22
- end
23
- end
24
- test_result = run_as_test do
25
- klass.stubs(:private_method)
26
- end
27
- assert_passed(test_result)
28
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.private_method")
29
- end
30
-
31
- def test_should_allow_stubbing_protected_class_method
32
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
33
- klass = Class.new do
34
- class << self
35
- def protected_method; end
36
- protected :protected_method
37
- end
38
- end
39
- test_result = run_as_test do
40
- klass.stubs(:protected_method)
41
- end
42
- assert_passed(test_result)
43
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.protected_method")
44
- end
45
-
46
- def test_should_warn_when_stubbing_private_class_method
47
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
48
- klass = Class.new do
49
- class << self
50
- def private_method; end
51
- private :private_method
52
- end
53
- end
54
- test_result = run_as_test do
55
- klass.stubs(:private_method)
56
- end
57
- assert_passed(test_result)
58
- assert @logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.private_method")
59
- end
60
-
61
- def test_should_warn_when_stubbing_protected_class_method
62
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
63
- klass = Class.new do
64
- class << self
65
- def protected_method; end
66
- protected :protected_method
67
- end
68
- end
69
- test_result = run_as_test do
70
- klass.stubs(:protected_method)
71
- end
72
- assert_passed(test_result)
73
- assert @logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.protected_method")
74
- end
75
-
76
- def test_should_prevent_stubbing_private_class_method
77
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
78
- klass = Class.new do
79
- class << self
80
- def private_method; end
81
- private :private_method
82
- end
83
- end
84
- test_result = run_as_test do
85
- klass.stubs(:private_method)
86
- end
87
- assert_failed(test_result)
88
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.mocha_inspect}.private_method")
89
- end
90
-
91
- def test_should_prevent_stubbing_protected_class_method
92
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
93
- klass = Class.new do
94
- class << self
95
- def protected_method; end
96
- protected :protected_method
97
- end
98
- end
99
- test_result = run_as_test do
100
- klass.stubs(:protected_method)
101
- end
102
- assert_failed(test_result)
103
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.mocha_inspect}.protected_method")
104
- end
105
-
106
- def test_should_default_to_allow_stubbing_private_class_method
107
- klass = Class.new do
108
- class << self
109
- def private_method; end
110
- private :private_method
111
- end
112
- end
113
- test_result = run_as_test do
114
- klass.stubs(:private_method)
115
- end
116
- assert_passed(test_result)
117
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.private_method")
118
- end
119
-
120
- def test_should_default_to_allow_stubbing_protected_class_method
121
- klass = Class.new do
122
- class << self
123
- def protected_method; end
124
- protected :protected_method
125
- end
126
- end
127
- test_result = run_as_test do
128
- klass.stubs(:protected_method)
129
- end
130
- assert_passed(test_result)
131
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.mocha_inspect}.protected_method")
132
- end
133
-
134
- def test_should_allow_stubbing_public_class_method
135
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
136
- klass = Class.new do
137
- class << self
138
- def public_method; end
139
- public :public_method
140
- end
141
- end
142
- test_result = run_as_test do
143
- klass.stubs(:public_method)
144
- end
145
- assert_passed(test_result)
146
- end
147
- # rubocop:enable Lint/DuplicateMethods
148
-
149
- def test_should_allow_stubbing_method_to_which_class_responds
150
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
151
- klass = Class.new do
152
- class << self
153
- def respond_to?(method, _include_private_methods = false)
154
- (method == :method_to_which_class_responds)
155
- end
156
- end
157
- end
158
- test_result = run_as_test do
159
- klass.stubs(:method_to_which_class_responds)
160
- end
161
- assert_passed(test_result)
162
- end
163
- end
@@ -1,141 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/configuration'
3
-
4
- class StubbingNonPublicInstanceMethodTest < 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_private_instance_method
16
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
17
- instance = Class.new do
18
- def private_method; end
19
- private :private_method
20
- end.new
21
- test_result = run_as_test do
22
- instance.stubs(:private_method)
23
- end
24
- assert_passed(test_result)
25
- assert !@logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.private_method")
26
- end
27
-
28
- def test_should_allow_stubbing_protected_instance_method
29
- Mocha.configure { |c| c.stubbing_non_public_method = :allow }
30
- instance = Class.new do
31
- def protected_method; end
32
- protected :protected_method
33
- end.new
34
- test_result = run_as_test do
35
- instance.stubs(:protected_method)
36
- end
37
- assert_passed(test_result)
38
- assert !@logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.protected_method")
39
- end
40
-
41
- def test_should_warn_when_stubbing_private_instance_method
42
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
43
- instance = Class.new do
44
- def private_method; end
45
- private :private_method
46
- end.new
47
- test_result = run_as_test do
48
- instance.stubs(:private_method)
49
- end
50
- assert_passed(test_result)
51
- assert @logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.private_method")
52
- end
53
-
54
- def test_should_warn_when_stubbing_protected_instance_method
55
- Mocha.configure { |c| c.stubbing_non_public_method = :warn }
56
- instance = Class.new do
57
- def protected_method; end
58
- protected :protected_method
59
- end.new
60
- test_result = run_as_test do
61
- instance.stubs(:protected_method)
62
- end
63
- assert_passed(test_result)
64
- assert @logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.protected_method")
65
- end
66
-
67
- def test_should_prevent_stubbing_private_instance_method
68
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
69
- instance = Class.new do
70
- def private_method; end
71
- private :private_method
72
- end.new
73
- test_result = run_as_test do
74
- instance.stubs(:private_method)
75
- end
76
- assert_failed(test_result)
77
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{instance.mocha_inspect}.private_method")
78
- end
79
-
80
- def test_should_prevent_stubbing_protected_instance_method
81
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
82
- instance = Class.new do
83
- def protected_method; end
84
- protected :protected_method
85
- end.new
86
- test_result = run_as_test do
87
- instance.stubs(:protected_method)
88
- end
89
- assert_failed(test_result)
90
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{instance.mocha_inspect}.protected_method")
91
- end
92
-
93
- def test_should_default_to_allow_stubbing_private_instance_method
94
- instance = Class.new do
95
- def private_method; end
96
- private :private_method
97
- end.new
98
- test_result = run_as_test do
99
- instance.stubs(:private_method)
100
- end
101
- assert_passed(test_result)
102
- assert !@logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.private_method")
103
- end
104
-
105
- def test_should_default_to_allow_stubbing_protected_instance_method
106
- instance = Class.new do
107
- def protected_method; end
108
- protected :protected_method
109
- end.new
110
- test_result = run_as_test do
111
- instance.stubs(:protected_method)
112
- end
113
- assert_passed(test_result)
114
- assert !@logger.warnings.include?("stubbing non-public method: #{instance.mocha_inspect}.protected_method")
115
- end
116
-
117
- def test_should_allow_stubbing_public_instance_method
118
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
119
- instance = Class.new do
120
- def public_method; end
121
- public :public_method
122
- end.new
123
- test_result = run_as_test do
124
- instance.stubs(:public_method)
125
- end
126
- assert_passed(test_result)
127
- end
128
-
129
- def test_should_allow_stubbing_method_to_which_instance_responds
130
- Mocha.configure { |c| c.stubbing_non_public_method = :prevent }
131
- instance = Class.new do
132
- def respond_to?(method, _include_private_methods = false)
133
- (method == :method_to_which_instance_responds)
134
- end
135
- end.new
136
- test_result = run_as_test do
137
- instance.stubs(:method_to_which_instance_responds)
138
- end
139
- assert_passed(test_result)
140
- end
141
- end