mocha 1.2.1 → 1.16.1

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 (265) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +61 -0
  4. data/.rubocop_todo.yml +27 -0
  5. data/.yardopts +1 -0
  6. data/CONTRIBUTING.md +4 -9
  7. data/Gemfile +29 -0
  8. data/README.md +104 -106
  9. data/RELEASE.md +277 -1
  10. data/Rakefile +46 -44
  11. data/gemfiles/Gemfile.minitest.latest +1 -0
  12. data/gemfiles/Gemfile.test-unit.latest +2 -5
  13. data/init.rb +1 -3
  14. data/lib/mocha/any_instance_method.rb +9 -62
  15. data/lib/mocha/api.rb +144 -68
  16. data/lib/mocha/argument_iterator.rb +4 -8
  17. data/lib/mocha/backtrace_filter.rb +1 -5
  18. data/lib/mocha/block_matcher.rb +31 -0
  19. data/lib/mocha/cardinality.rb +60 -49
  20. data/lib/mocha/central.rb +21 -12
  21. data/lib/mocha/change_state_side_effect.rb +0 -4
  22. data/lib/mocha/class_methods.rb +19 -21
  23. data/lib/mocha/configuration.rb +372 -18
  24. data/lib/mocha/debug.rb +3 -2
  25. data/lib/mocha/deprecation.rb +8 -11
  26. data/lib/mocha/detection/mini_test.rb +0 -2
  27. data/lib/mocha/detection/test_unit.rb +3 -5
  28. data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
  29. data/lib/mocha/exception_raiser.rb +4 -6
  30. data/lib/mocha/expectation.rb +125 -89
  31. data/lib/mocha/expectation_error.rb +1 -1
  32. data/lib/mocha/expectation_error_factory.rb +0 -1
  33. data/lib/mocha/expectation_list.rb +7 -11
  34. data/lib/mocha/hooks.rb +1 -3
  35. data/lib/mocha/in_state_ordering_constraint.rb +0 -4
  36. data/lib/mocha/inspect.rb +30 -38
  37. data/lib/mocha/instance_method.rb +11 -8
  38. data/lib/mocha/integration/mini_test/adapter.rb +2 -4
  39. data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
  40. data/lib/mocha/integration/mini_test/nothing.rb +4 -4
  41. data/lib/mocha/integration/mini_test/version_13.rb +4 -1
  42. data/lib/mocha/integration/mini_test/version_140.rb +4 -1
  43. data/lib/mocha/integration/mini_test/version_141.rb +4 -1
  44. data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
  45. data/lib/mocha/integration/mini_test/version_200.rb +4 -1
  46. data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
  47. data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
  48. data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
  49. data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
  50. data/lib/mocha/integration/mini_test.rb +7 -0
  51. data/lib/mocha/integration/monkey_patcher.rb +5 -7
  52. data/lib/mocha/integration/test_unit/adapter.rb +5 -6
  53. data/lib/mocha/integration/test_unit/gem_version_200.rb +5 -2
  54. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
  55. data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
  56. data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
  57. data/lib/mocha/integration/test_unit/nothing.rb +4 -4
  58. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
  59. data/lib/mocha/integration/test_unit.rb +7 -2
  60. data/lib/mocha/integration.rb +2 -5
  61. data/lib/mocha/invocation.rb +86 -0
  62. data/lib/mocha/is_a.rb +0 -2
  63. data/lib/mocha/logger.rb +0 -4
  64. data/lib/mocha/macos_version.rb +5 -0
  65. data/lib/mocha/method_matcher.rb +1 -5
  66. data/lib/mocha/minitest.rb +9 -0
  67. data/lib/mocha/mock.rb +102 -58
  68. data/lib/mocha/mockery.rb +70 -99
  69. data/lib/mocha/names.rb +2 -12
  70. data/lib/mocha/not_initialized_error.rb +7 -0
  71. data/lib/mocha/object_methods.rb +25 -31
  72. data/lib/mocha/parameter_matchers/all_of.rb +2 -8
  73. data/lib/mocha/parameter_matchers/any_of.rb +2 -8
  74. data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
  75. data/lib/mocha/parameter_matchers/anything.rb +2 -8
  76. data/lib/mocha/parameter_matchers/base.rb +6 -12
  77. data/lib/mocha/parameter_matchers/equals.rb +0 -6
  78. data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +15 -15
  79. data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
  80. data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
  81. data/lib/mocha/parameter_matchers/has_key.rb +2 -7
  82. data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
  83. data/lib/mocha/parameter_matchers/has_value.rb +2 -7
  84. data/lib/mocha/parameter_matchers/includes.rb +6 -7
  85. data/lib/mocha/parameter_matchers/instance_methods.rb +18 -0
  86. data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
  87. data/lib/mocha/parameter_matchers/is_a.rb +2 -7
  88. data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
  89. data/lib/mocha/parameter_matchers/not.rb +2 -7
  90. data/lib/mocha/parameter_matchers/optionally.rb +4 -10
  91. data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
  92. data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
  93. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
  94. data/lib/mocha/parameter_matchers.rb +3 -4
  95. data/lib/mocha/parameters_matcher.rb +6 -9
  96. data/lib/mocha/raised_exception.rb +11 -0
  97. data/lib/mocha/receivers.rb +10 -14
  98. data/lib/mocha/return_values.rb +4 -8
  99. data/lib/mocha/ruby_version.rb +8 -1
  100. data/lib/mocha/sequence.rb +4 -9
  101. data/lib/mocha/setup.rb +5 -0
  102. data/lib/mocha/single_return_value.rb +2 -5
  103. data/lib/mocha/state_machine.rb +33 -46
  104. data/lib/mocha/stubbed_method.rb +124 -0
  105. data/lib/mocha/stubbing_error.rb +2 -13
  106. data/lib/mocha/test_unit.rb +8 -2
  107. data/lib/mocha/thrower.rb +4 -6
  108. data/lib/mocha/thrown_object.rb +12 -0
  109. data/lib/mocha/version.rb +1 -1
  110. data/lib/mocha/yield_parameters.rb +7 -17
  111. data/mocha.gemspec +14 -65
  112. data/yard-templates/default/layout/html/google_analytics.erb +6 -9
  113. data/yard-templates/default/layout/html/setup.rb +2 -3
  114. metadata +25 -247
  115. data/bin/build-matrix +0 -70
  116. data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
  117. data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
  118. data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
  119. data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
  120. data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
  121. data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
  122. data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
  123. data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
  124. data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
  125. data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
  126. data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
  127. data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
  128. data/lib/mocha/class_method.rb +0 -119
  129. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -58
  130. data/lib/mocha/mini_test.rb +0 -3
  131. data/lib/mocha/module_method.rb +0 -16
  132. data/lib/mocha/module_methods.rb +0 -14
  133. data/lib/mocha/multiple_yields.rb +0 -20
  134. data/lib/mocha/no_yields.rb +0 -11
  135. data/lib/mocha/parameter_matchers/object.rb +0 -17
  136. data/lib/mocha/pretty_parameters.rb +0 -28
  137. data/lib/mocha/single_yield.rb +0 -18
  138. data/lib/mocha/standalone.rb +0 -4
  139. data/lib/mocha/unexpected_invocation.rb +0 -26
  140. data/lib/mocha_standalone.rb +0 -4
  141. data/test/acceptance/acceptance_test_helper.rb +0 -41
  142. data/test/acceptance/bug_18914_test.rb +0 -43
  143. data/test/acceptance/bug_21465_test.rb +0 -34
  144. data/test/acceptance/bug_21563_test.rb +0 -25
  145. data/test/acceptance/exception_rescue_test.rb +0 -55
  146. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  147. data/test/acceptance/expected_invocation_count_test.rb +0 -232
  148. data/test/acceptance/failure_messages_test.rb +0 -64
  149. data/test/acceptance/issue_272_test.rb +0 -52
  150. data/test/acceptance/issue_65_test.rb +0 -63
  151. data/test/acceptance/issue_70_test.rb +0 -55
  152. data/test/acceptance/mocha_example_test.rb +0 -98
  153. data/test/acceptance/mocha_test_result_test.rb +0 -84
  154. data/test/acceptance/mock_test.rb +0 -100
  155. data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
  156. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
  157. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
  158. data/test/acceptance/optional_parameters_test.rb +0 -70
  159. data/test/acceptance/parameter_matcher_test.rb +0 -337
  160. data/test/acceptance/partial_mocks_test.rb +0 -47
  161. data/test/acceptance/prepend_test.rb +0 -89
  162. data/test/acceptance/raise_exception_test.rb +0 -39
  163. data/test/acceptance/return_value_test.rb +0 -52
  164. data/test/acceptance/sequence_test.rb +0 -192
  165. data/test/acceptance/states_test.rb +0 -70
  166. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
  167. data/test/acceptance/stub_any_instance_method_test.rb +0 -280
  168. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
  169. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  170. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
  171. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
  172. data/test/acceptance/stub_everything_test.rb +0 -56
  173. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
  174. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
  175. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
  176. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
  177. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -78
  178. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  179. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
  180. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
  181. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -39
  182. data/test/acceptance/stub_module_method_test.rb +0 -163
  183. data/test/acceptance/stub_test.rb +0 -52
  184. data/test/acceptance/stubba_example_test.rb +0 -102
  185. data/test/acceptance/stubba_test_result_test.rb +0 -66
  186. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
  187. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  188. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
  189. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
  190. data/test/acceptance/stubbing_nil_test.rb +0 -61
  191. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -143
  192. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  193. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
  194. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
  195. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  196. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
  197. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
  198. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
  199. data/test/acceptance/throw_test.rb +0 -45
  200. data/test/acceptance/unexpected_invocation_test.rb +0 -25
  201. data/test/acceptance/unstubbing_test.rb +0 -168
  202. data/test/assertions.rb +0 -8
  203. data/test/deprecation_disabler.rb +0 -15
  204. data/test/execution_point.rb +0 -36
  205. data/test/integration/mini_test_test.rb +0 -8
  206. data/test/integration/shared_tests.rb +0 -174
  207. data/test/integration/test_unit_test.rb +0 -8
  208. data/test/method_definer.rb +0 -24
  209. data/test/mini_test_result.rb +0 -90
  210. data/test/minitest_result.rb +0 -49
  211. data/test/simple_counter.rb +0 -13
  212. data/test/test_helper.rb +0 -50
  213. data/test/test_runner.rb +0 -58
  214. data/test/test_unit_result.rb +0 -20
  215. data/test/unit/any_instance_method_test.rb +0 -134
  216. data/test/unit/array_inspect_test.rb +0 -16
  217. data/test/unit/backtrace_filter_test.rb +0 -19
  218. data/test/unit/cardinality_test.rb +0 -56
  219. data/test/unit/central_test.rb +0 -100
  220. data/test/unit/change_state_side_effect_test.rb +0 -41
  221. data/test/unit/class_method_test.rb +0 -225
  222. data/test/unit/class_methods_test.rb +0 -40
  223. data/test/unit/configuration_test.rb +0 -38
  224. data/test/unit/date_time_inspect_test.rb +0 -21
  225. data/test/unit/exception_raiser_test.rb +0 -42
  226. data/test/unit/expectation_list_test.rb +0 -82
  227. data/test/unit/expectation_test.rb +0 -497
  228. data/test/unit/hash_inspect_test.rb +0 -16
  229. data/test/unit/hooks_test.rb +0 -29
  230. data/test/unit/in_state_ordering_constraint_test.rb +0 -43
  231. data/test/unit/method_matcher_test.rb +0 -28
  232. data/test/unit/mock_test.rb +0 -342
  233. data/test/unit/mockery_test.rb +0 -151
  234. data/test/unit/module_methods_test.rb +0 -19
  235. data/test/unit/multiple_yields_test.rb +0 -18
  236. data/test/unit/no_yields_test.rb +0 -18
  237. data/test/unit/object_inspect_test.rb +0 -39
  238. data/test/unit/object_methods_test.rb +0 -46
  239. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  240. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  241. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  242. data/test/unit/parameter_matchers/equals_test.rb +0 -25
  243. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  244. data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
  245. data/test/unit/parameter_matchers/has_key_test.rb +0 -55
  246. data/test/unit/parameter_matchers/has_value_test.rb +0 -57
  247. data/test/unit/parameter_matchers/includes_test.rb +0 -102
  248. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  249. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  250. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  251. data/test/unit/parameter_matchers/not_test.rb +0 -26
  252. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
  253. data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
  254. data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
  255. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
  256. data/test/unit/parameters_matcher_test.rb +0 -121
  257. data/test/unit/receivers_test.rb +0 -66
  258. data/test/unit/return_values_test.rb +0 -63
  259. data/test/unit/sequence_test.rb +0 -104
  260. data/test/unit/single_return_value_test.rb +0 -14
  261. data/test/unit/single_yield_test.rb +0 -18
  262. data/test/unit/state_machine_test.rb +0 -98
  263. data/test/unit/string_inspect_test.rb +0 -11
  264. data/test/unit/thrower_test.rb +0 -20
  265. data/test/unit/yield_parameters_test.rb +0 -93
@@ -1,61 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubbingNilTest < Mocha::TestCase
5
-
6
- include AcceptanceTest
7
-
8
- def setup
9
- setup_acceptance_test
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- if RUBY_VERSION < '2.2.0'
17
- def test_should_allow_stubbing_method_on_nil
18
- Mocha::Configuration.allow(:stubbing_method_on_nil)
19
- test_result = run_as_test do
20
- nil.stubs(:stubbed_method)
21
- end
22
- assert_passed(test_result)
23
- assert !@logger.warnings.include?("stubbing method on nil: nil.stubbed_method")
24
- end
25
-
26
- def test_should_warn_on_stubbing_method_on_nil
27
- Mocha::Configuration.warn_when(:stubbing_method_on_nil)
28
- test_result = run_as_test do
29
- nil.stubs(:stubbed_method)
30
- end
31
- assert_passed(test_result)
32
- assert @logger.warnings.include?("stubbing method on nil: nil.stubbed_method")
33
- end
34
-
35
- def test_should_prevent_stubbing_method_on_nil
36
- Mocha::Configuration.prevent(:stubbing_method_on_nil)
37
- test_result = run_as_test do
38
- nil.stubs(:stubbed_method)
39
- end
40
- assert_failed(test_result)
41
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method")
42
- end
43
-
44
- def test_should_default_to_prevent_stubbing_method_on_non_mock_object
45
- test_result = run_as_test do
46
- nil.stubs(:stubbed_method)
47
- end
48
- assert_failed(test_result)
49
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing method on nil: nil.stubbed_method")
50
- end
51
-
52
- def test_should_allow_stubbing_method_on_non_nil_object
53
- Mocha::Configuration.prevent(:stubbing_method_on_nil)
54
- object = Object.new
55
- test_result = run_as_test do
56
- object.stubs(:stubbed_method)
57
- end
58
- assert_passed(test_result)
59
- end
60
- end
61
- end
@@ -1,143 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubbingNonExistentAnyInstanceMethodTest < Mocha::TestCase
5
-
6
- include AcceptanceTest
7
-
8
- def setup
9
- setup_acceptance_test
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- def test_should_allow_stubbing_non_existent_any_instance_method
17
- Mocha::Configuration.allow(:stubbing_non_existent_method)
18
- klass = Class.new
19
- test_result = run_as_test do
20
- klass.any_instance.stubs(:non_existent_method)
21
- end
22
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_should_warn_when_stubbing_non_existent_any_instance_method
27
- Mocha::Configuration.warn_when(:stubbing_non_existent_method)
28
- klass = Class.new
29
- test_result = run_as_test do
30
- klass.any_instance.stubs(:non_existent_method)
31
- end
32
- assert_passed(test_result)
33
- assert @logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
34
- end
35
-
36
- def test_should_prevent_stubbing_non_existent_any_instance_method
37
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
38
- klass = Class.new
39
- test_result = run_as_test do
40
- klass.any_instance.stubs(:non_existent_method)
41
- end
42
- assert_failed(test_result)
43
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
44
- end
45
-
46
- def test_should_default_to_allow_stubbing_non_existent_any_instance_method
47
- klass = Class.new
48
- test_result = run_as_test do
49
- klass.any_instance.stubs(:non_existent_method)
50
- end
51
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.any_instance.mocha_inspect}.non_existent_method")
52
- assert_passed(test_result)
53
- end
54
-
55
- def test_should_allow_stubbing_existing_public_any_instance_method
56
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
57
- klass = Class.new do
58
- def existing_public_method; end
59
- public :existing_public_method
60
- end
61
- test_result = run_as_test do
62
- klass.any_instance.stubs(:existing_public_method)
63
- end
64
- assert_passed(test_result)
65
- end
66
-
67
- def test_should_allow_stubbing_method_to_which_any_instance_responds
68
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
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
- test_result = run_as_test do
75
- klass.any_instance.stubs(:method_to_which_instance_responds)
76
- end
77
- assert_passed(test_result)
78
- end
79
-
80
- def test_should_allow_stubbing_existing_protected_any_instance_method
81
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
82
- klass = Class.new do
83
- def existing_protected_method; end
84
- protected :existing_protected_method
85
- end
86
- test_result = run_as_test do
87
- klass.any_instance.stubs(:existing_protected_method)
88
- end
89
- assert_passed(test_result)
90
- end
91
-
92
- def test_should_allow_stubbing_existing_private_any_instance_method
93
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
94
- klass = Class.new do
95
- def existing_private_method; end
96
- private :existing_private_method
97
- end
98
- test_result = run_as_test do
99
- klass.any_instance.stubs(:existing_private_method)
100
- end
101
- assert_passed(test_result)
102
- end
103
-
104
- def test_should_allow_stubbing_existing_public_any_instance_superclass_method
105
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
106
- superklass = Class.new do
107
- def existing_public_method; end
108
- public :existing_public_method
109
- end
110
- klass = Class.new(superklass)
111
- test_result = run_as_test do
112
- klass.any_instance.stubs(:existing_public_method)
113
- end
114
- assert_passed(test_result)
115
- end
116
-
117
- def test_should_allow_stubbing_existing_protected_any_instance_superclass_method
118
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
119
- superklass = Class.new do
120
- def existing_protected_method; end
121
- protected :existing_protected_method
122
- end
123
- klass = Class.new(superklass)
124
- test_result = run_as_test do
125
- klass.any_instance.stubs(:existing_protected_method)
126
- end
127
- assert_passed(test_result)
128
- end
129
-
130
- def test_should_allow_stubbing_existing_private_any_instance_superclass_method
131
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
132
- superklass = Class.new do
133
- def existing_private_method; end
134
- private :existing_private_method
135
- end
136
- klass = Class.new(superklass)
137
- test_result = run_as_test do
138
- klass.any_instance.stubs(:existing_private_method)
139
- end
140
- assert_passed(test_result)
141
- end
142
-
143
- end
@@ -1,157 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubbingNonExistentClassMethodTest < Mocha::TestCase
5
-
6
- include AcceptanceTest
7
-
8
- def setup
9
- setup_acceptance_test
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- def test_should_allow_stubbing_non_existent_class_method
17
- Mocha::Configuration.allow(:stubbing_non_existent_method)
18
- klass = Class.new
19
- test_result = run_as_test do
20
- klass.stubs(:non_existent_method)
21
- end
22
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_should_warn_when_stubbing_non_existent_class_method
27
- Mocha::Configuration.warn_when(:stubbing_non_existent_method)
28
- klass = Class.new
29
- test_result = run_as_test do
30
- klass.stubs(:non_existent_method)
31
- end
32
- assert_passed(test_result)
33
- assert @logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
34
- end
35
-
36
- def test_should_prevent_stubbing_non_existent_class_method
37
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
38
- klass = Class.new
39
- test_result = run_as_test do
40
- klass.stubs(:non_existent_method)
41
- end
42
- assert_failed(test_result)
43
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
44
- end
45
-
46
- def test_should_default_to_allow_stubbing_non_existent_class_method
47
- klass = Class.new
48
- test_result = run_as_test do
49
- klass.stubs(:non_existent_method)
50
- end
51
- assert !@logger.warnings.include?("stubbing non-existent method: #{klass.mocha_inspect}.non_existent_method")
52
- assert_passed(test_result)
53
- end
54
-
55
- def test_should_allow_stubbing_existing_public_class_method
56
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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::Configuration.prevent(:stubbing_non_existent_method)
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
-
157
- end
@@ -1,147 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubbingNonExistentInstanceMethodTest < Mocha::TestCase
5
-
6
- include AcceptanceTest
7
-
8
- def setup
9
- setup_acceptance_test
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- def test_should_allow_stubbing_non_existent_instance_method
17
- Mocha::Configuration.allow(:stubbing_non_existent_method)
18
- instance = Class.new.new
19
- test_result = run_as_test do
20
- instance.stubs(:non_existent_method)
21
- end
22
- assert !@logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_should_warn_when_stubbing_non_existent_instance_method
27
- Mocha::Configuration.warn_when(:stubbing_non_existent_method)
28
- instance = Class.new.new
29
- test_result = run_as_test do
30
- instance.stubs(:non_existent_method)
31
- end
32
- assert_passed(test_result)
33
- assert @logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
34
- end
35
-
36
- def test_should_prevent_stubbing_non_existent_instance_method
37
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
38
- instance = Class.new.new
39
- test_result = run_as_test do
40
- instance.stubs(:non_existent_method)
41
- end
42
- assert_failed(test_result)
43
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
44
- end
45
-
46
- def test_should_default_to_allow_stubbing_non_existent_instance_method
47
- instance = Class.new.new
48
- test_result = run_as_test do
49
- instance.stubs(:non_existent_method)
50
- end
51
- assert !@logger.warnings.include?("stubbing non-existent method: #{instance.mocha_inspect}.non_existent_method")
52
- assert_passed(test_result)
53
- end
54
-
55
- def test_should_allow_stubbing_existing_public_instance_method
56
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
57
- klass = Class.new do
58
- def existing_public_method; end
59
- public :existing_public_method
60
- end
61
- instance = klass.new
62
- test_result = run_as_test do
63
- instance.stubs(:existing_public_method)
64
- end
65
- assert_passed(test_result)
66
- end
67
-
68
- def test_should_allow_stubbing_method_to_which_instance_responds
69
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
70
- klass = Class.new do
71
- def respond_to?(method, include_private = false)
72
- (method == :method_to_which_instance_responds)
73
- end
74
- end
75
- instance = klass.new
76
- test_result = run_as_test do
77
- instance.stubs(:method_to_which_instance_responds)
78
- end
79
- assert_passed(test_result)
80
- end
81
-
82
- def test_should_allow_stubbing_existing_protected_instance_method
83
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
84
- klass = Class.new do
85
- def existing_protected_method; end
86
- protected :existing_protected_method
87
- end
88
- instance = klass.new
89
- test_result = run_as_test do
90
- instance.stubs(:existing_protected_method)
91
- end
92
- assert_passed(test_result)
93
- end
94
-
95
- def test_should_allow_stubbing_existing_private_instance_method
96
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
97
- klass = Class.new do
98
- def existing_private_method; end
99
- private :existing_private_method
100
- end
101
- instance = klass.new
102
- test_result = run_as_test do
103
- instance.stubs(:existing_private_method)
104
- end
105
- assert_passed(test_result)
106
- end
107
-
108
- def test_should_allow_stubbing_existing_public_instance_superclass_method
109
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
110
- superklass = Class.new do
111
- def existing_public_method; end
112
- public :existing_public_method
113
- end
114
- instance = Class.new(superklass).new
115
- test_result = run_as_test do
116
- instance.stubs(:existing_public_method)
117
- end
118
- assert_passed(test_result)
119
- end
120
-
121
- def test_should_allow_stubbing_existing_protected_instance_superclass_method
122
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
123
- superklass = Class.new do
124
- def existing_protected_method; end
125
- protected :existing_protected_method
126
- end
127
- instance = Class.new(superklass).new
128
- test_result = run_as_test do
129
- instance.stubs(:existing_protected_method)
130
- end
131
- assert_passed(test_result)
132
- end
133
-
134
- def test_should_allow_stubbing_existing_private_instance_superclass_method
135
- Mocha::Configuration.prevent(:stubbing_non_existent_method)
136
- superklass = Class.new do
137
- def existing_private_method; end
138
- private :existing_private_method
139
- end
140
- instance = Class.new(superklass).new
141
- test_result = run_as_test do
142
- instance.stubs(:existing_private_method)
143
- end
144
- assert_passed(test_result)
145
- end
146
-
147
- end
@@ -1,130 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubbingNonPublicAnyInstanceMethodTest < Mocha::TestCase
5
-
6
- include AcceptanceTest
7
-
8
- def setup
9
- setup_acceptance_test
10
- end
11
-
12
- def teardown
13
- teardown_acceptance_test
14
- end
15
-
16
- def test_should_allow_stubbing_private_any_instance_method
17
- Mocha::Configuration.allow(:stubbing_non_public_method)
18
- klass = Class.new do
19
- def private_method; end
20
- private :private_method
21
- end
22
- test_result = run_as_test do
23
- klass.any_instance.stubs(:private_method)
24
- end
25
- assert_passed(test_result)
26
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
27
- end
28
-
29
- def test_should_allow_stubbing_protected_any_instance_method
30
- Mocha::Configuration.allow(:stubbing_non_public_method)
31
- klass = Class.new do
32
- def protected_method; end
33
- protected :protected_method
34
- end
35
- test_result = run_as_test do
36
- klass.any_instance.stubs(:protected_method)
37
- end
38
- assert_passed(test_result)
39
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
40
- end
41
-
42
- def test_should_warn_when_stubbing_private_any_instance_method
43
- Mocha::Configuration.warn_when(:stubbing_non_public_method)
44
- klass = Class.new do
45
- def private_method; end
46
- private :private_method
47
- end
48
- test_result = run_as_test do
49
- klass.any_instance.stubs(:private_method)
50
- end
51
- assert_passed(test_result)
52
- assert @logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
53
- end
54
-
55
- def test_should_warn_when_stubbing_protected_any_instance_method
56
- Mocha::Configuration.warn_when(:stubbing_non_public_method)
57
- klass = Class.new do
58
- def protected_method; end
59
- protected :protected_method
60
- end
61
- test_result = run_as_test do
62
- klass.any_instance.stubs(:protected_method)
63
- end
64
- assert_passed(test_result)
65
- assert @logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
66
- end
67
-
68
- def test_should_prevent_stubbing_private_any_instance_method
69
- Mocha::Configuration.prevent(:stubbing_non_public_method)
70
- klass = Class.new do
71
- def private_method; end
72
- private :private_method
73
- end
74
- test_result = run_as_test do
75
- klass.any_instance.stubs(:private_method)
76
- end
77
- assert_failed(test_result)
78
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
79
- end
80
-
81
- def test_should_prevent_stubbing_protected_any_instance_method
82
- Mocha::Configuration.prevent(:stubbing_non_public_method)
83
- klass = Class.new do
84
- def protected_method; end
85
- protected :protected_method
86
- end
87
- test_result = run_as_test do
88
- klass.any_instance.stubs(:protected_method)
89
- end
90
- assert_failed(test_result)
91
- assert test_result.error_messages.include?("Mocha::StubbingError: stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
92
- end
93
-
94
- def test_should_default_to_allow_stubbing_private_any_instance_method
95
- klass = Class.new do
96
- def private_method; end
97
- private :private_method
98
- end
99
- test_result = run_as_test do
100
- klass.any_instance.stubs(:private_method)
101
- end
102
- assert_passed(test_result)
103
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.private_method")
104
- end
105
-
106
- def test_should_default_to_allow_stubbing_protected_any_instance_method
107
- klass = Class.new do
108
- def protected_method; end
109
- protected :protected_method
110
- end
111
- test_result = run_as_test do
112
- klass.any_instance.stubs(:protected_method)
113
- end
114
- assert_passed(test_result)
115
- assert !@logger.warnings.include?("stubbing non-public method: #{klass.any_instance.mocha_inspect}.protected_method")
116
- end
117
-
118
- def test_should_allow_stubbing_public_any_instance_method
119
- Mocha::Configuration.prevent(:stubbing_non_public_method)
120
- klass = Class.new do
121
- def public_method; end
122
- public :public_method
123
- end
124
- test_result = run_as_test do
125
- klass.any_instance.stubs(:public_method)
126
- end
127
- assert_passed(test_result)
128
- end
129
-
130
- end