mocha 1.1.0 → 1.13.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 (263) 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/README.md +114 -28
  8. data/RELEASE.md +248 -1
  9. data/Rakefile +53 -35
  10. data/gemfiles/Gemfile.test-unit.latest +5 -1
  11. data/init.rb +1 -3
  12. data/lib/mocha/any_instance_method.rb +12 -72
  13. data/lib/mocha/api.rb +121 -56
  14. data/lib/mocha/argument_iterator.rb +4 -8
  15. data/lib/mocha/backtrace_filter.rb +1 -5
  16. data/lib/mocha/block_matcher.rb +31 -0
  17. data/lib/mocha/cardinality.rb +60 -49
  18. data/lib/mocha/central.rb +21 -12
  19. data/lib/mocha/change_state_side_effect.rb +0 -4
  20. data/lib/mocha/class_methods.rb +19 -20
  21. data/lib/mocha/configuration.rb +361 -18
  22. data/lib/mocha/debug.rb +3 -2
  23. data/lib/mocha/deprecation.rb +8 -11
  24. data/lib/mocha/detection/mini_test.rb +0 -2
  25. data/lib/mocha/detection/test_unit.rb +3 -5
  26. data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
  27. data/lib/mocha/exception_raiser.rb +4 -6
  28. data/lib/mocha/expectation.rb +125 -89
  29. data/lib/mocha/expectation_error.rb +1 -1
  30. data/lib/mocha/expectation_error_factory.rb +0 -1
  31. data/lib/mocha/expectation_list.rb +7 -11
  32. data/lib/mocha/hooks.rb +1 -3
  33. data/lib/mocha/in_state_ordering_constraint.rb +0 -4
  34. data/lib/mocha/inspect.rb +30 -38
  35. data/lib/mocha/instance_method.rb +15 -8
  36. data/lib/mocha/integration/mini_test/adapter.rb +2 -4
  37. data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
  38. data/lib/mocha/integration/mini_test/nothing.rb +4 -4
  39. data/lib/mocha/integration/mini_test/version_13.rb +4 -1
  40. data/lib/mocha/integration/mini_test/version_140.rb +4 -1
  41. data/lib/mocha/integration/mini_test/version_141.rb +4 -1
  42. data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
  43. data/lib/mocha/integration/mini_test/version_200.rb +4 -1
  44. data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
  45. data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
  46. data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
  47. data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
  48. data/lib/mocha/integration/mini_test.rb +7 -0
  49. data/lib/mocha/integration/monkey_patcher.rb +8 -2
  50. data/lib/mocha/integration/test_unit/adapter.rb +5 -6
  51. data/lib/mocha/integration/test_unit/gem_version_200.rb +5 -2
  52. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
  53. data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
  54. data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
  55. data/lib/mocha/integration/test_unit/nothing.rb +4 -4
  56. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +4 -1
  57. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
  58. data/lib/mocha/integration/test_unit.rb +7 -0
  59. data/lib/mocha/integration.rb +2 -5
  60. data/lib/mocha/invocation.rb +77 -0
  61. data/lib/mocha/is_a.rb +0 -2
  62. data/lib/mocha/logger.rb +0 -4
  63. data/lib/mocha/macos_version.rb +5 -0
  64. data/lib/mocha/method_matcher.rb +1 -5
  65. data/lib/mocha/minitest.rb +8 -0
  66. data/lib/mocha/mock.rb +94 -46
  67. data/lib/mocha/mockery.rb +72 -98
  68. data/lib/mocha/names.rb +2 -12
  69. data/lib/mocha/not_initialized_error.rb +7 -0
  70. data/lib/mocha/object_methods.rb +25 -31
  71. data/lib/mocha/parameter_matchers/all_of.rb +2 -8
  72. data/lib/mocha/parameter_matchers/any_of.rb +2 -8
  73. data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
  74. data/lib/mocha/parameter_matchers/anything.rb +2 -8
  75. data/lib/mocha/parameter_matchers/base.rb +6 -12
  76. data/lib/mocha/parameter_matchers/equals.rb +1 -7
  77. data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +15 -15
  78. data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
  79. data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
  80. data/lib/mocha/parameter_matchers/has_key.rb +2 -7
  81. data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
  82. data/lib/mocha/parameter_matchers/has_value.rb +2 -7
  83. data/lib/mocha/parameter_matchers/includes.rb +50 -8
  84. data/lib/mocha/parameter_matchers/instance_methods.rb +18 -0
  85. data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
  86. data/lib/mocha/parameter_matchers/is_a.rb +2 -7
  87. data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
  88. data/lib/mocha/parameter_matchers/not.rb +2 -7
  89. data/lib/mocha/parameter_matchers/optionally.rb +4 -10
  90. data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
  91. data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
  92. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
  93. data/lib/mocha/parameter_matchers.rb +3 -4
  94. data/lib/mocha/parameters_matcher.rb +6 -9
  95. data/lib/mocha/raised_exception.rb +11 -0
  96. data/lib/mocha/receivers.rb +10 -14
  97. data/lib/mocha/return_values.rb +4 -8
  98. data/lib/mocha/ruby_version.rb +4 -0
  99. data/lib/mocha/sequence.rb +4 -9
  100. data/lib/mocha/setup.rb +5 -0
  101. data/lib/mocha/single_return_value.rb +2 -5
  102. data/lib/mocha/singleton_class.rb +9 -0
  103. data/lib/mocha/state_machine.rb +33 -46
  104. data/lib/mocha/stubbed_method.rb +125 -0
  105. data/lib/mocha/stubbing_error.rb +2 -13
  106. data/lib/mocha/test_unit.rb +7 -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/lib/mocha.rb +8 -0
  112. data/mocha.gemspec +42 -40
  113. data/yard-templates/default/layout/html/google_analytics.erb +6 -9
  114. data/yard-templates/default/layout/html/setup.rb +2 -3
  115. metadata +45 -191
  116. data/bin/build-matrix +0 -71
  117. data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
  118. data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
  119. data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
  120. data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
  121. data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
  122. data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
  123. data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
  124. data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
  125. data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
  126. data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
  127. data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
  128. data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
  129. data/lib/mocha/class_method.rb +0 -127
  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_65_test.rb +0 -63
  150. data/test/acceptance/issue_70_test.rb +0 -55
  151. data/test/acceptance/mocha_example_test.rb +0 -98
  152. data/test/acceptance/mocha_test_result_test.rb +0 -84
  153. data/test/acceptance/mock_test.rb +0 -100
  154. data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
  155. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
  156. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
  157. data/test/acceptance/optional_parameters_test.rb +0 -70
  158. data/test/acceptance/parameter_matcher_test.rb +0 -337
  159. data/test/acceptance/partial_mocks_test.rb +0 -47
  160. data/test/acceptance/prepend_test.rb +0 -88
  161. data/test/acceptance/raise_exception_test.rb +0 -39
  162. data/test/acceptance/return_value_test.rb +0 -52
  163. data/test/acceptance/sequence_test.rb +0 -192
  164. data/test/acceptance/states_test.rb +0 -70
  165. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
  166. data/test/acceptance/stub_any_instance_method_test.rb +0 -238
  167. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
  168. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  169. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
  170. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
  171. data/test/acceptance/stub_everything_test.rb +0 -56
  172. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
  173. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
  174. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
  175. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
  176. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -75
  177. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  178. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
  179. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
  180. data/test/acceptance/stub_module_method_test.rb +0 -163
  181. data/test/acceptance/stub_test.rb +0 -52
  182. data/test/acceptance/stubba_example_test.rb +0 -102
  183. data/test/acceptance/stubba_test_result_test.rb +0 -66
  184. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
  185. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  186. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
  187. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
  188. data/test/acceptance/stubbing_nil_test.rb +0 -59
  189. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -130
  190. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  191. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
  192. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
  193. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  194. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
  195. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
  196. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
  197. data/test/acceptance/throw_test.rb +0 -45
  198. data/test/acceptance/unexpected_invocation_test.rb +0 -25
  199. data/test/acceptance/unstubbing_test.rb +0 -168
  200. data/test/assertions.rb +0 -6
  201. data/test/deprecation_disabler.rb +0 -15
  202. data/test/execution_point.rb +0 -36
  203. data/test/integration/mini_test_test.rb +0 -8
  204. data/test/integration/shared_tests.rb +0 -174
  205. data/test/integration/test_unit_test.rb +0 -8
  206. data/test/method_definer.rb +0 -24
  207. data/test/mini_test_result.rb +0 -90
  208. data/test/minitest_result.rb +0 -49
  209. data/test/simple_counter.rb +0 -13
  210. data/test/test_helper.rb +0 -50
  211. data/test/test_runner.rb +0 -58
  212. data/test/test_unit_result.rb +0 -20
  213. data/test/unit/any_instance_method_test.rb +0 -132
  214. data/test/unit/array_inspect_test.rb +0 -16
  215. data/test/unit/backtrace_filter_test.rb +0 -19
  216. data/test/unit/cardinality_test.rb +0 -56
  217. data/test/unit/central_test.rb +0 -100
  218. data/test/unit/change_state_side_effect_test.rb +0 -41
  219. data/test/unit/class_method_test.rb +0 -223
  220. data/test/unit/class_methods_test.rb +0 -40
  221. data/test/unit/configuration_test.rb +0 -38
  222. data/test/unit/date_time_inspect_test.rb +0 -21
  223. data/test/unit/exception_raiser_test.rb +0 -42
  224. data/test/unit/expectation_list_test.rb +0 -82
  225. data/test/unit/expectation_test.rb +0 -497
  226. data/test/unit/hash_inspect_test.rb +0 -16
  227. data/test/unit/hooks_test.rb +0 -29
  228. data/test/unit/in_state_ordering_constraint_test.rb +0 -43
  229. data/test/unit/method_matcher_test.rb +0 -28
  230. data/test/unit/mock_test.rb +0 -341
  231. data/test/unit/mockery_test.rb +0 -151
  232. data/test/unit/module_methods_test.rb +0 -19
  233. data/test/unit/multiple_yields_test.rb +0 -18
  234. data/test/unit/no_yields_test.rb +0 -18
  235. data/test/unit/object_inspect_test.rb +0 -38
  236. data/test/unit/object_methods_test.rb +0 -46
  237. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  238. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  239. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  240. data/test/unit/parameter_matchers/equals_test.rb +0 -25
  241. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  242. data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
  243. data/test/unit/parameter_matchers/has_key_test.rb +0 -55
  244. data/test/unit/parameter_matchers/has_value_test.rb +0 -57
  245. data/test/unit/parameter_matchers/includes_test.rb +0 -59
  246. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  247. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  248. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  249. data/test/unit/parameter_matchers/not_test.rb +0 -26
  250. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
  251. data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
  252. data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
  253. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
  254. data/test/unit/parameters_matcher_test.rb +0 -121
  255. data/test/unit/receivers_test.rb +0 -66
  256. data/test/unit/return_values_test.rb +0 -63
  257. data/test/unit/sequence_test.rb +0 -104
  258. data/test/unit/single_return_value_test.rb +0 -14
  259. data/test/unit/single_yield_test.rb +0 -18
  260. data/test/unit/state_machine_test.rb +0 -98
  261. data/test/unit/string_inspect_test.rb +0 -11
  262. data/test/unit/thrower_test.rb +0 -20
  263. data/test/unit/yield_parameters_test.rb +0 -93
@@ -1,78 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubClassMethodDefinedOnClassTest < 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
- klass = Class.new do
18
- class << self
19
- def my_class_method
20
- :original_return_value
21
- end
22
- public :my_class_method
23
- def self.public(*args); end
24
- end
25
- end
26
- assert_snapshot_unchanged(klass) do
27
- test_result = run_as_test do
28
- klass.stubs(:my_class_method).returns(:new_return_value)
29
- assert_method_visiblity klass, :my_class_method, :public
30
- assert_equal :new_return_value, klass.my_class_method
31
- end
32
- assert_passed(test_result)
33
- end
34
- assert_equal :original_return_value, klass.my_class_method
35
- end
36
-
37
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
38
- klass = Class.new do
39
- class << self
40
- def my_class_method
41
- :original_return_value
42
- end
43
- protected :my_class_method
44
- def self.protected(*args); end
45
- end
46
- end
47
- assert_snapshot_unchanged(klass) do
48
- test_result = run_as_test do
49
- klass.stubs(:my_class_method).returns(:new_return_value)
50
- assert_method_visiblity klass, :my_class_method, :protected
51
- assert_equal :new_return_value, klass.send(:my_class_method)
52
- end
53
- assert_passed(test_result)
54
- end
55
- assert_equal :original_return_value, klass.send(:my_class_method)
56
- end
57
-
58
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
59
- klass = Class.new do
60
- class << self
61
- def my_class_method
62
- :original_return_value
63
- end
64
- private :my_class_method
65
- def self.private(*args); end
66
- end
67
- end
68
- assert_snapshot_unchanged(klass) do
69
- test_result = run_as_test do
70
- klass.stubs(:my_class_method).returns(:new_return_value)
71
- assert_method_visiblity klass, :my_class_method, :private
72
- assert_equal :new_return_value, klass.send(:my_class_method)
73
- end
74
- assert_passed(test_result)
75
- end
76
- assert_equal :original_return_value, klass.send(:my_class_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 StubClassMethodDefinedOnModuleTest < 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_class_method
19
- :original_return_value
20
- end
21
- public :my_class_method
22
- end
23
- klass = Class.new do
24
- extend mod
25
- end
26
- assert_snapshot_unchanged(klass) do
27
- test_result = run_as_test do
28
- klass.stubs(:my_class_method).returns(:new_return_value)
29
- assert_equal :new_return_value, klass.my_class_method
30
- end
31
- assert_passed(test_result)
32
- end
33
- assert_equal :original_return_value, klass.my_class_method
34
- end
35
-
36
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
37
- mod = Module.new do
38
- def my_class_method
39
- :original_return_value
40
- end
41
- protected :my_class_method
42
- end
43
- klass = Class.new do
44
- extend mod
45
- end
46
- assert_snapshot_unchanged(klass) do
47
- test_result = run_as_test do
48
- klass.stubs(:my_class_method).returns(:new_return_value)
49
- assert_equal :new_return_value, klass.send(:my_class_method)
50
- end
51
- assert_passed(test_result)
52
- end
53
- assert_equal :original_return_value, klass.send(:my_class_method)
54
- end
55
-
56
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
57
- mod = Module.new do
58
- def my_class_method
59
- :original_return_value
60
- end
61
- private :my_class_method
62
- end
63
- klass = Class.new do
64
- extend mod
65
- end
66
- assert_snapshot_unchanged(klass) do
67
- test_result = run_as_test do
68
- klass.stubs(:my_class_method).returns(:new_return_value)
69
- assert_equal :new_return_value, klass.send(:my_class_method)
70
- end
71
- assert_passed(test_result)
72
- end
73
- assert_equal :original_return_value, klass.send(:my_class_method)
74
- end
75
- end
@@ -1,112 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubClassMethodDefinedOnSuperclassTest < 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_on_child_class_and_leave_it_unchanged_after_test
17
- superklass = Class.new do
18
- class << self
19
- def my_class_method
20
- :original_return_value
21
- end
22
- public :my_class_method
23
- end
24
- end
25
- klass = Class.new(superklass)
26
- assert_snapshot_unchanged(klass) do
27
- test_result = run_as_test do
28
- klass.stubs(:my_class_method).returns(:new_return_value)
29
- assert_equal :new_return_value, klass.my_class_method
30
- end
31
- assert_passed(test_result)
32
- end
33
- assert_equal :original_return_value, klass.my_class_method
34
- end
35
-
36
- def test_should_stub_protected_method_on_child_class_and_leave_it_unchanged_after_test
37
- superklass = Class.new do
38
- class << self
39
- def my_class_method
40
- :original_return_value
41
- end
42
- protected :my_class_method
43
- end
44
- end
45
- klass = Class.new(superklass)
46
- assert_snapshot_unchanged(klass) do
47
- test_result = run_as_test do
48
- klass.stubs(:my_class_method).returns(:new_return_value)
49
- assert_equal :new_return_value, klass.send(:my_class_method)
50
- end
51
- assert_passed(test_result)
52
- end
53
- assert_equal :original_return_value, klass.send(:my_class_method)
54
- end
55
-
56
- def test_should_stub_private_method_on_child_class_and_leave_it_unchanged_after_test
57
- superklass = Class.new do
58
- class << self
59
- def my_class_method
60
- :original_return_value
61
- end
62
- private :my_class_method
63
- end
64
- end
65
- klass = Class.new(superklass)
66
- assert_snapshot_unchanged(klass) do
67
- test_result = run_as_test do
68
- klass.stubs(:my_class_method).returns(:new_return_value)
69
- assert_equal :new_return_value, klass.send(:my_class_method)
70
- end
71
- assert_passed(test_result)
72
- end
73
- assert_equal :original_return_value, klass.send(:my_class_method)
74
- end
75
-
76
- def test_should_stub_method_on_superclass_and_leave_it_unchanged_after_test
77
- superklass = Class.new do
78
- class << self
79
- def my_class_method
80
- :original_return_value
81
- end
82
- public :my_class_method
83
- end
84
- end
85
- klass = Class.new(superklass)
86
- assert_snapshot_unchanged(klass) do
87
- test_result = run_as_test do
88
- superklass.stubs(:my_class_method).returns(:new_return_value)
89
- assert_equal :new_return_value, klass.my_class_method
90
- end
91
- assert_passed(test_result)
92
- end
93
- assert_equal :original_return_value, klass.my_class_method
94
- end
95
-
96
- def test_stub_on_earliest_receiver_should_take_priority
97
- superklass = Class.new do
98
- class << self
99
- def my_class_method
100
- :original_return_value
101
- end
102
- end
103
- end
104
- klass = Class.new(superklass)
105
- test_result = run_as_test do
106
- klass.stubs(:my_class_method).returns(:klass_return_value)
107
- superklass.stubs(:my_class_method).returns(:superklass_return_value)
108
- assert_equal :klass_return_value, klass.my_class_method
109
- end
110
- assert_passed(test_result)
111
- end
112
- end
@@ -1,56 +0,0 @@
1
- require File.expand_path('../acceptance_test_helper', __FILE__)
2
- require 'mocha/setup'
3
-
4
- class StubEverythingTest < 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_build_stub_and_explicitly_add_an_expectation
17
- test_result = run_as_test do
18
- foo = stub_everything()
19
- foo.stubs(:bar)
20
- foo.bar
21
- foo.unexpected_invocation
22
- end
23
- assert_passed(test_result)
24
- end
25
-
26
- def test_should_build_named_stub_and_explicitly_add_an_expectation
27
- test_result = run_as_test do
28
- foo = stub_everything('foo')
29
- foo.stubs(:bar)
30
- foo.bar
31
- foo.unexpected_invocation
32
- end
33
- assert_passed(test_result)
34
- end
35
-
36
- def test_should_build_stub_incorporating_two_expectations
37
- test_result = run_as_test do
38
- foo = stub_everything(:bar => 'bar', :baz => 'baz')
39
- foo.bar
40
- foo.baz
41
- foo.unexpected_invocation
42
- end
43
- assert_passed(test_result)
44
- end
45
-
46
- def test_should_build_named_stub_incorporating_two_expectations
47
- test_result = run_as_test do
48
- foo = stub_everything('foo', :bar => 'bar', :baz => 'baz')
49
- foo.bar
50
- foo.baz
51
- foo.unexpected_invocation
52
- end
53
- assert_passed(test_result)
54
- end
55
-
56
- end
@@ -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_visiblity 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_visiblity 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_visiblity 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,75 +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_equal :new_return_value, instance.my_module_method
30
- end
31
- assert_passed(test_result)
32
- end
33
- assert_equal :original_return_value, instance.my_module_method
34
- end
35
-
36
- def test_should_stub_protected_method_and_leave_it_unchanged_after_test
37
- mod = Module.new do
38
- def my_module_method
39
- :original_return_value
40
- end
41
- protected :my_module_method
42
- end
43
- instance = Class.new do
44
- include mod
45
- end.new
46
- assert_snapshot_unchanged(instance) do
47
- test_result = run_as_test do
48
- instance.stubs(:my_module_method).returns(:new_return_value)
49
- assert_equal :new_return_value, instance.send(:my_module_method)
50
- end
51
- assert_passed(test_result)
52
- end
53
- assert_equal :original_return_value, instance.send(:my_module_method)
54
- end
55
-
56
- def test_should_stub_private_method_and_leave_it_unchanged_after_test
57
- mod = Module.new do
58
- def my_module_method
59
- :original_return_value
60
- end
61
- private :my_module_method
62
- end
63
- instance = Class.new do
64
- include mod
65
- end.new
66
- assert_snapshot_unchanged(instance) do
67
- test_result = run_as_test do
68
- instance.stubs(:my_module_method).returns(:new_return_value)
69
- assert_equal :new_return_value, instance.send(:my_module_method)
70
- end
71
- assert_passed(test_result)
72
- end
73
- assert_equal :original_return_value, instance.send(:my_module_method)
74
- end
75
- end