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,93 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnActiveRecordAssociationProxyTest < 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_be_able_to_stub_method_if_ruby18_public_methods_include_method_but_method_does_not_exist
17
- ruby18_instance = Class.new do
18
- def public_methods(include_superclass = true)
19
- ['my_instance_method']
20
- end
21
- end.new
22
- test_result = run_as_test do
23
- ruby18_instance.stubs(:my_instance_method).returns(:new_return_value)
24
- assert_equal :new_return_value, ruby18_instance.my_instance_method
25
- end
26
- assert_passed(test_result)
27
- end
28
-
29
- def test_should_be_able_to_stub_method_if_ruby19_public_methods_include_method_but_method_does_not_exist
30
- ruby19_instance = Class.new do
31
- def public_methods(include_superclass = true)
32
- [:my_instance_method]
33
- end
34
- end.new
35
- test_result = run_as_test do
36
- ruby19_instance.stubs(:my_instance_method).returns(:new_return_value)
37
- assert_equal :new_return_value, ruby19_instance.my_instance_method
38
- end
39
- assert_passed(test_result)
40
- end
41
-
42
- def test_should_be_able_to_stub_method_if_ruby18_protected_methods_include_method_but_method_does_not_exist
43
- ruby18_instance = Class.new do
44
- def protected_methods(include_superclass = true)
45
- ['my_instance_method']
46
- end
47
- end.new
48
- test_result = run_as_test do
49
- ruby18_instance.stubs(:my_instance_method).returns(:new_return_value)
50
- assert_equal :new_return_value, ruby18_instance.my_instance_method
51
- end
52
- assert_passed(test_result)
53
- end
54
-
55
- def test_should_be_able_to_stub_method_if_ruby19_protected_methods_include_method_but_method_does_not_exist
56
- ruby19_instance = Class.new do
57
- def protected_methods(include_superclass = true)
58
- [:my_instance_method]
59
- end
60
- end.new
61
- test_result = run_as_test do
62
- ruby19_instance.stubs(:my_instance_method).returns(:new_return_value)
63
- assert_equal :new_return_value, ruby19_instance.my_instance_method
64
- end
65
- assert_passed(test_result)
66
- end
67
-
68
- def test_should_be_able_to_stub_method_if_ruby18_private_methods_include_method_but_method_does_not_exist
69
- ruby18_instance = Class.new do
70
- def private_methods(include_superclass = true)
71
- ['my_instance_method']
72
- end
73
- end.new
74
- test_result = run_as_test do
75
- ruby18_instance.stubs(:my_instance_method).returns(:new_return_value)
76
- assert_equal :new_return_value, ruby18_instance.my_instance_method
77
- end
78
- assert_passed(test_result)
79
- end
80
-
81
- def test_should_be_able_to_stub_method_if_ruby19_private_methods_include_method_but_method_does_not_exist
82
- ruby19_instance = Class.new do
83
- def private_methods(include_superclass = true)
84
- [:my_instance_method]
85
- end
86
- end.new
87
- test_result = run_as_test do
88
- ruby19_instance.stubs(:my_instance_method).returns(:new_return_value)
89
- assert_equal :new_return_value, ruby19_instance.my_instance_method
90
- end
91
- assert_passed(test_result)
92
- end
93
- end
@@ -1,69 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnClassAndAliasedTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- instance = Class.new do
18
- def my_instance_method
19
- :original_return_value
20
- end
21
- public :my_instance_method
22
- alias_method :my_aliased_method, :my_instance_method
23
- end.new
24
- assert_snapshot_unchanged(instance) do
25
- test_result = run_as_test do
26
- instance.stubs(:my_aliased_method).returns(:new_return_value)
27
- assert_equal :new_return_value, instance.my_aliased_method
28
- end
29
- assert_passed(test_result)
30
- end
31
- assert_equal :original_return_value, instance.my_aliased_method
32
- end
33
-
34
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
35
- instance = Class.new do
36
- def my_instance_method
37
- :original_return_value
38
- end
39
- protected :my_instance_method
40
- alias_method :my_aliased_method, :my_instance_method
41
- end.new
42
- assert_snapshot_unchanged(instance) do
43
- test_result = run_as_test do
44
- instance.stubs(:my_aliased_method).returns(:new_return_value)
45
- assert_equal :new_return_value, instance.send(:my_aliased_method)
46
- end
47
- assert_passed(test_result)
48
- end
49
- assert_equal :original_return_value, instance.send(:my_aliased_method)
50
- end
51
-
52
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
53
- instance = Class.new do
54
- def my_instance_method
55
- :original_return_value
56
- end
57
- private :my_instance_method
58
- alias_method :my_aliased_method, :my_instance_method
59
- end.new
60
- assert_snapshot_unchanged(instance) do
61
- test_result = run_as_test do
62
- instance.stubs(:my_aliased_method).returns(:new_return_value)
63
- assert_equal :new_return_value, instance.send(:my_aliased_method)
64
- end
65
- assert_passed(test_result)
66
- end
67
- assert_equal :original_return_value, instance.send(:my_aliased_method)
68
- end
69
- end
@@ -1,69 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnClassTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- instance = Class.new do
18
- def my_instance_method
19
- :original_return_value
20
- end
21
- public :my_instance_method
22
- end.new
23
- assert_snapshot_unchanged(instance) do
24
- test_result = run_as_test do
25
- instance.stubs(:my_instance_method).returns(:new_return_value)
26
- assert_method_visibility instance, :my_instance_method, :public
27
- assert_equal :new_return_value, instance.my_instance_method
28
- end
29
- assert_passed(test_result)
30
- end
31
- assert_equal :original_return_value, instance.my_instance_method
32
- end
33
-
34
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
35
- instance = Class.new do
36
- def my_instance_method
37
- :original_return_value
38
- end
39
- protected :my_instance_method
40
- end.new
41
- assert_snapshot_unchanged(instance) do
42
- test_result = run_as_test do
43
- instance.stubs(:my_instance_method).returns(:new_return_value)
44
- assert_method_visibility instance, :my_instance_method, :protected
45
- assert_equal :new_return_value, instance.send(:my_instance_method)
46
- end
47
- assert_passed(test_result)
48
- end
49
- assert_equal :original_return_value, instance.send(:my_instance_method)
50
- end
51
-
52
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
53
- instance = Class.new do
54
- def my_instance_method
55
- :original_return_value
56
- end
57
- private :my_instance_method
58
- end.new
59
- assert_snapshot_unchanged(instance) do
60
- test_result = run_as_test do
61
- instance.stubs(:my_instance_method).returns(:new_return_value)
62
- assert_method_visibility instance, :my_instance_method, :private
63
- assert_equal :new_return_value, instance.send(:my_instance_method)
64
- end
65
- assert_passed(test_result)
66
- end
67
- assert_equal :original_return_value, instance.send(:my_instance_method)
68
- end
69
- end
@@ -1,75 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnKernelModuleTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- Kernel.module_eval do
18
- def my_instance_method
19
- :original_return_value
20
- end
21
- public :my_instance_method
22
- end
23
- instance = Class.new.new
24
- assert_snapshot_unchanged(instance) do
25
- test_result = run_as_test do
26
- instance.stubs(:my_instance_method).returns(:new_return_value)
27
- assert_equal :new_return_value, instance.my_instance_method
28
- end
29
- assert_passed(test_result)
30
- end
31
- assert_equal :original_return_value, instance.my_instance_method
32
- ensure
33
- Kernel.module_eval { remove_method :my_instance_method }
34
- end
35
-
36
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
37
- Kernel.module_eval do
38
- def my_instance_method
39
- :original_return_value
40
- end
41
- protected :my_instance_method
42
- end
43
- instance = Class.new.new
44
- assert_snapshot_unchanged(instance) do
45
- test_result = run_as_test do
46
- instance.stubs(:my_instance_method).returns(:new_return_value)
47
- assert_equal :new_return_value, instance.send(:my_instance_method)
48
- end
49
- assert_passed(test_result)
50
- end
51
- assert_equal :original_return_value, instance.send(:my_instance_method)
52
- ensure
53
- Kernel.module_eval { remove_method :my_instance_method }
54
- end
55
-
56
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
57
- Kernel.module_eval do
58
- def my_instance_method
59
- :original_return_value
60
- end
61
- private :my_instance_method
62
- end
63
- instance = Class.new.new
64
- assert_snapshot_unchanged(instance) do
65
- test_result = run_as_test do
66
- instance.stubs(:my_instance_method).returns(:new_return_value)
67
- assert_equal :new_return_value, instance.send(:my_instance_method)
68
- end
69
- assert_passed(test_result)
70
- end
71
- assert_equal :original_return_value, instance.send(:my_instance_method)
72
- ensure
73
- Kernel.module_eval { remove_method :my_instance_method }
74
- end
75
- end
@@ -1,78 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnModuleTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- mod = Module.new do
18
- def my_module_method
19
- :original_return_value
20
- end
21
- public :my_module_method
22
- end
23
- instance = Class.new do
24
- include mod
25
- end.new
26
- assert_snapshot_unchanged(instance) do
27
- test_result = run_as_test do
28
- instance.stubs(:my_module_method).returns(:new_return_value)
29
- assert_method_visibility instance, :my_module_method, :public
30
- assert_equal :new_return_value, instance.my_module_method
31
- end
32
- assert_passed(test_result)
33
- end
34
- assert_equal :original_return_value, instance.my_module_method
35
- end
36
-
37
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
38
- mod = Module.new do
39
- def my_module_method
40
- :original_return_value
41
- end
42
- protected :my_module_method
43
- end
44
- instance = Class.new do
45
- include mod
46
- end.new
47
- assert_snapshot_unchanged(instance) do
48
- test_result = run_as_test do
49
- instance.stubs(:my_module_method).returns(:new_return_value)
50
- assert_method_visibility instance, :my_module_method, :protected
51
- assert_equal :new_return_value, instance.send(:my_module_method)
52
- end
53
- assert_passed(test_result)
54
- end
55
- assert_equal :original_return_value, instance.send(:my_module_method)
56
- end
57
-
58
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
59
- mod = Module.new do
60
- def my_module_method
61
- :original_return_value
62
- end
63
- private :my_module_method
64
- end
65
- instance = Class.new do
66
- include mod
67
- end.new
68
- assert_snapshot_unchanged(instance) do
69
- test_result = run_as_test do
70
- instance.stubs(:my_module_method).returns(:new_return_value)
71
- assert_method_visibility instance, :my_module_method, :private
72
- assert_equal :new_return_value, instance.send(:my_module_method)
73
- end
74
- assert_passed(test_result)
75
- end
76
- assert_equal :original_return_value, instance.send(:my_module_method)
77
- end
78
- end
@@ -1,75 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnObjectClassTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- Object.class_eval do
18
- def my_instance_method
19
- :original_return_value
20
- end
21
- public :my_instance_method
22
- end
23
- instance = Class.new.new
24
- assert_snapshot_unchanged(instance) do
25
- test_result = run_as_test do
26
- instance.stubs(:my_instance_method).returns(:new_return_value)
27
- assert_equal :new_return_value, instance.my_instance_method
28
- end
29
- assert_passed(test_result)
30
- end
31
- assert_equal :original_return_value, instance.my_instance_method
32
- ensure
33
- Object.class_eval { remove_method :my_instance_method }
34
- end
35
-
36
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
37
- Object.class_eval do
38
- def my_instance_method
39
- :original_return_value
40
- end
41
- protected :my_instance_method
42
- end
43
- instance = Class.new.new
44
- assert_snapshot_unchanged(instance) do
45
- test_result = run_as_test do
46
- instance.stubs(:my_instance_method).returns(:new_return_value)
47
- assert_equal :new_return_value, instance.send(:my_instance_method)
48
- end
49
- assert_passed(test_result)
50
- end
51
- assert_equal :original_return_value, instance.send(:my_instance_method)
52
- ensure
53
- Object.class_eval { remove_method :my_instance_method }
54
- end
55
-
56
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
57
- Object.class_eval do
58
- def my_instance_method
59
- :original_return_value
60
- end
61
- private :my_instance_method
62
- end
63
- instance = Class.new.new
64
- assert_snapshot_unchanged(instance) do
65
- test_result = run_as_test do
66
- instance.stubs(:my_instance_method).returns(:new_return_value)
67
- assert_equal :new_return_value, instance.send(:my_instance_method)
68
- end
69
- assert_passed(test_result)
70
- end
71
- assert_equal :original_return_value, instance.send(:my_instance_method)
72
- ensure
73
- Object.class_eval { remove_method :my_instance_method }
74
- end
75
- end
@@ -1,70 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnSingletonClassTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- instance = Class.new.new
18
- class << instance
19
- def my_singleton_method
20
- :original_return_value
21
- end
22
- public :my_singleton_method
23
- end
24
- assert_snapshot_unchanged(instance) do
25
- test_result = run_as_test do
26
- instance.stubs(:my_singleton_method).returns(:stubbed_return_value)
27
- assert_equal :stubbed_return_value, instance.my_singleton_method
28
- end
29
- assert_passed(test_result)
30
- end
31
- assert_equal :original_return_value, instance.my_singleton_method
32
- end
33
-
34
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
35
- instance = Class.new.new
36
- class << instance
37
- def my_singleton_method
38
- :original_return_value
39
- end
40
- protected :my_singleton_method
41
- end
42
- assert_snapshot_unchanged(instance) do
43
- test_result = run_as_test do
44
- instance.stubs(:my_singleton_method).returns(:stubbed_return_value)
45
- assert_equal :stubbed_return_value, instance.send(:my_singleton_method)
46
- end
47
- assert_passed(test_result)
48
- end
49
- assert_equal :original_return_value, instance.send(:my_singleton_method)
50
- end
51
-
52
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
53
- instance = Class.new.new
54
- class << instance
55
- def my_singleton_method
56
- :original_return_value
57
- end
58
- private :my_singleton_method
59
- end
60
- assert_snapshot_unchanged(instance) do
61
- test_result = run_as_test do
62
- instance.stubs(:my_singleton_method).returns(:stubbed_return_value)
63
- assert_equal :stubbed_return_value, instance.send(:my_singleton_method)
64
- end
65
- assert_passed(test_result)
66
- end
67
- assert_equal :original_return_value, instance.send(:my_singleton_method)
68
- end
69
-
70
- end
@@ -1,72 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubInstanceMethodDefinedOnSuperclassTest < 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_stub_public_method_and_leave_it_unchanged_after_test
17
- superklass = Class.new do
18
- def my_superclass_method
19
- :original_return_value
20
- end
21
- public :my_superclass_method
22
- end
23
- klass = Class.new(superklass)
24
- instance = klass.new
25
- assert_snapshot_unchanged(instance) do
26
- test_result = run_as_test do
27
- instance.stubs(:my_superclass_method).returns(:new_return_value)
28
- assert_equal :new_return_value, instance.my_superclass_method
29
- end
30
- assert_passed(test_result)
31
- end
32
- assert_equal :original_return_value, instance.my_superclass_method
33
- end
34
-
35
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
36
- superklass = Class.new do
37
- def my_superclass_method
38
- :original_return_value
39
- end
40
- protected :my_superclass_method
41
- end
42
- klass = Class.new(superklass)
43
- instance = klass.new
44
- assert_snapshot_unchanged(instance) do
45
- test_result = run_as_test do
46
- instance.stubs(:my_superclass_method).returns(:new_return_value)
47
- assert_equal :new_return_value, instance.send(:my_superclass_method)
48
- end
49
- assert_passed(test_result)
50
- end
51
- assert_equal :original_return_value, instance.send(:my_superclass_method)
52
- end
53
-
54
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
55
- superklass = Class.new do
56
- def my_superclass_method
57
- :original_return_value
58
- end
59
- private :my_superclass_method
60
- end
61
- klass = Class.new(superklass)
62
- instance = klass.new
63
- assert_snapshot_unchanged(instance) do
64
- test_result = run_as_test do
65
- instance.stubs(:my_superclass_method).returns(:new_return_value)
66
- assert_equal :new_return_value, instance.send(:my_superclass_method)
67
- end
68
- assert_passed(test_result)
69
- end
70
- assert_equal :original_return_value, instance.send(:my_superclass_method)
71
- end
72
- end
@@ -1,39 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- unless Mocha::PRE_RUBY_V19
5
- class StubMethodDefinedOnModuleAndAliasedTest < Mocha::TestCase
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_stubbing_class_method_defined_by_aliasing_module_instance_method
17
- mod = Module.new do
18
- def module_instance_method
19
- 'module-instance-method'
20
- end
21
- end
22
-
23
- klass = Class.new do
24
- extend mod
25
- class << self
26
- alias_method :aliased_module_instance_method, :module_instance_method
27
- end
28
- end
29
-
30
- assert_snapshot_unchanged(klass) do
31
- test_result = run_as_test do
32
- klass.stubs(:aliased_module_instance_method).returns('stubbed-aliased-module-instance-method')
33
- assert_equal 'stubbed-aliased-module-instance-method', klass.aliased_module_instance_method
34
- end
35
- assert_passed(test_result)
36
- end
37
- end
38
- end
39
- end