mocha 0.5.6 → 3.0.2

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 (192) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/.github/FUNDING.yml +1 -0
  4. data/.rubocop.yml +92 -0
  5. data/.rubocop_todo.yml +39 -0
  6. data/.yardopts +25 -0
  7. data/CONTRIBUTING.md +7 -0
  8. data/COPYING.md +3 -0
  9. data/Gemfile +17 -0
  10. data/{MIT-LICENSE → MIT-LICENSE.md} +2 -2
  11. data/README.md +361 -0
  12. data/RELEASE.md +1235 -0
  13. data/Rakefile +165 -123
  14. data/gemfiles/Gemfile.minitest.latest +8 -0
  15. data/gemfiles/Gemfile.rubocop +9 -0
  16. data/gemfiles/Gemfile.test-unit.latest +8 -0
  17. data/lib/mocha/any_instance_method.rb +12 -26
  18. data/lib/mocha/any_instance_receiver.rb +20 -0
  19. data/lib/mocha/api.rb +213 -0
  20. data/lib/mocha/argument_iterator.rb +17 -0
  21. data/lib/mocha/backtrace_filter.rb +15 -0
  22. data/lib/mocha/block_matchers.rb +33 -0
  23. data/lib/mocha/cardinality.rb +110 -0
  24. data/lib/mocha/central.rb +33 -22
  25. data/lib/mocha/change_state_side_effect.rb +17 -0
  26. data/lib/mocha/class_methods.rb +67 -0
  27. data/lib/mocha/configuration.rb +338 -0
  28. data/lib/mocha/default_name.rb +15 -0
  29. data/lib/mocha/default_receiver.rb +13 -0
  30. data/lib/mocha/deprecation.rb +19 -14
  31. data/lib/mocha/detection/minitest.rb +25 -0
  32. data/lib/mocha/detection/test_unit.rb +30 -0
  33. data/lib/mocha/error_with_filtered_backtrace.rb +15 -0
  34. data/lib/mocha/exception_raiser.rb +11 -10
  35. data/lib/mocha/expectation.rb +553 -168
  36. data/lib/mocha/expectation_error.rb +9 -14
  37. data/lib/mocha/expectation_error_factory.rb +37 -0
  38. data/lib/mocha/expectation_list.rb +30 -14
  39. data/lib/mocha/hooks.rb +55 -0
  40. data/lib/mocha/ignoring_warning.rb +20 -0
  41. data/lib/mocha/impersonating_any_instance_name.rb +13 -0
  42. data/lib/mocha/impersonating_name.rb +13 -0
  43. data/lib/mocha/in_state_ordering_constraint.rb +17 -0
  44. data/lib/mocha/inspect.rb +56 -22
  45. data/lib/mocha/instance_method.rb +17 -4
  46. data/lib/mocha/integration/assertion_counter.rb +15 -0
  47. data/lib/mocha/integration/minitest/adapter.rb +71 -0
  48. data/lib/mocha/integration/minitest.rb +29 -0
  49. data/lib/mocha/integration/monkey_patcher.rb +26 -0
  50. data/lib/mocha/integration/test_unit/adapter.rb +61 -0
  51. data/lib/mocha/integration/test_unit.rb +29 -0
  52. data/lib/mocha/integration.rb +5 -0
  53. data/lib/mocha/invocation.rb +76 -0
  54. data/lib/mocha/logger.rb +13 -0
  55. data/lib/mocha/macos_version.rb +7 -0
  56. data/lib/mocha/method_matcher.rb +8 -10
  57. data/lib/mocha/minitest.rb +7 -0
  58. data/lib/mocha/mock.rb +333 -108
  59. data/lib/mocha/mockery.rb +199 -0
  60. data/lib/mocha/name.rb +13 -0
  61. data/lib/mocha/not_initialized_error.rb +9 -0
  62. data/lib/mocha/object_methods.rb +183 -0
  63. data/lib/mocha/object_receiver.rb +20 -0
  64. data/lib/mocha/parameter_matchers/all_of.rb +38 -28
  65. data/lib/mocha/parameter_matchers/any_of.rb +44 -33
  66. data/lib/mocha/parameter_matchers/any_parameters.rb +33 -26
  67. data/lib/mocha/parameter_matchers/anything.rb +31 -22
  68. data/lib/mocha/parameter_matchers/base_methods.rb +64 -0
  69. data/lib/mocha/parameter_matchers/equals.rb +36 -25
  70. data/lib/mocha/parameter_matchers/equivalent_uri.rb +65 -0
  71. data/lib/mocha/parameter_matchers/has_entries.rb +48 -29
  72. data/lib/mocha/parameter_matchers/has_entry.rb +90 -42
  73. data/lib/mocha/parameter_matchers/has_key.rb +39 -26
  74. data/lib/mocha/parameter_matchers/has_keys.rb +59 -0
  75. data/lib/mocha/parameter_matchers/has_value.rb +39 -26
  76. data/lib/mocha/parameter_matchers/includes.rb +88 -23
  77. data/lib/mocha/parameter_matchers/instance_methods.rb +28 -0
  78. data/lib/mocha/parameter_matchers/instance_of.rb +37 -26
  79. data/lib/mocha/parameter_matchers/is_a.rb +38 -26
  80. data/lib/mocha/parameter_matchers/kind_of.rb +39 -26
  81. data/lib/mocha/parameter_matchers/not.rb +37 -26
  82. data/lib/mocha/parameter_matchers/optionally.rb +52 -17
  83. data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +91 -0
  84. data/lib/mocha/parameter_matchers/regexp_matches.rb +37 -25
  85. data/lib/mocha/parameter_matchers/responds_with.rb +82 -0
  86. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +55 -0
  87. data/lib/mocha/parameter_matchers.rb +12 -5
  88. data/lib/mocha/parameters_matcher.rb +28 -19
  89. data/lib/mocha/raised_exception.rb +13 -0
  90. data/lib/mocha/return_values.rb +13 -18
  91. data/lib/mocha/ruby_version.rb +7 -0
  92. data/lib/mocha/sequence.rb +23 -17
  93. data/lib/mocha/single_return_value.rb +8 -18
  94. data/lib/mocha/state_machine.rb +95 -0
  95. data/lib/mocha/stubbed_method.rb +96 -0
  96. data/lib/mocha/stubbing_error.rb +10 -0
  97. data/lib/mocha/test_unit.rb +7 -0
  98. data/lib/mocha/thrower.rb +15 -0
  99. data/lib/mocha/thrown_object.rb +14 -0
  100. data/lib/mocha/version.rb +5 -0
  101. data/lib/mocha/yield_parameters.rb +12 -20
  102. data/lib/mocha.rb +19 -17
  103. data/mise.toml +2 -0
  104. data/mocha.gemspec +40 -0
  105. metadata +130 -145
  106. data/COPYING +0 -3
  107. data/README +0 -35
  108. data/RELEASE +0 -188
  109. data/examples/misc.rb +0 -44
  110. data/examples/mocha.rb +0 -26
  111. data/examples/stubba.rb +0 -65
  112. data/lib/mocha/auto_verify.rb +0 -118
  113. data/lib/mocha/class_method.rb +0 -66
  114. data/lib/mocha/infinite_range.rb +0 -25
  115. data/lib/mocha/is_a.rb +0 -9
  116. data/lib/mocha/metaclass.rb +0 -7
  117. data/lib/mocha/missing_expectation.rb +0 -17
  118. data/lib/mocha/multiple_yields.rb +0 -20
  119. data/lib/mocha/no_yields.rb +0 -11
  120. data/lib/mocha/object.rb +0 -110
  121. data/lib/mocha/parameter_matchers/base.rb +0 -15
  122. data/lib/mocha/parameter_matchers/object.rb +0 -9
  123. data/lib/mocha/pretty_parameters.rb +0 -28
  124. data/lib/mocha/setup_and_teardown.rb +0 -23
  125. data/lib/mocha/single_yield.rb +0 -18
  126. data/lib/mocha/standalone.rb +0 -32
  127. data/lib/mocha/stub.rb +0 -18
  128. data/lib/mocha/test_case_adapter.rb +0 -49
  129. data/lib/mocha_standalone.rb +0 -2
  130. data/lib/stubba.rb +0 -2
  131. data/test/acceptance/expected_invocation_count_acceptance_test.rb +0 -187
  132. data/test/acceptance/mocha_acceptance_test.rb +0 -98
  133. data/test/acceptance/mock_with_initializer_block_acceptance_test.rb +0 -44
  134. data/test/acceptance/mocked_methods_dispatch_acceptance_test.rb +0 -71
  135. data/test/acceptance/optional_parameters_acceptance_test.rb +0 -63
  136. data/test/acceptance/parameter_matcher_acceptance_test.rb +0 -117
  137. data/test/acceptance/partial_mocks_acceptance_test.rb +0 -40
  138. data/test/acceptance/sequence_acceptance_test.rb +0 -179
  139. data/test/acceptance/standalone_acceptance_test.rb +0 -131
  140. data/test/acceptance/stubba_acceptance_test.rb +0 -102
  141. data/test/active_record_test_case.rb +0 -36
  142. data/test/deprecation_disabler.rb +0 -15
  143. data/test/execution_point.rb +0 -34
  144. data/test/integration/mocha_test_result_integration_test.rb +0 -105
  145. data/test/integration/stubba_integration_test.rb +0 -89
  146. data/test/integration/stubba_test_result_integration_test.rb +0 -85
  147. data/test/method_definer.rb +0 -18
  148. data/test/test_helper.rb +0 -12
  149. data/test/test_runner.rb +0 -31
  150. data/test/unit/any_instance_method_test.rb +0 -126
  151. data/test/unit/array_inspect_test.rb +0 -16
  152. data/test/unit/auto_verify_test.rb +0 -129
  153. data/test/unit/central_test.rb +0 -124
  154. data/test/unit/class_method_test.rb +0 -200
  155. data/test/unit/date_time_inspect_test.rb +0 -21
  156. data/test/unit/expectation_error_test.rb +0 -24
  157. data/test/unit/expectation_list_test.rb +0 -75
  158. data/test/unit/expectation_raiser_test.rb +0 -28
  159. data/test/unit/expectation_test.rb +0 -483
  160. data/test/unit/hash_inspect_test.rb +0 -16
  161. data/test/unit/infinite_range_test.rb +0 -53
  162. data/test/unit/metaclass_test.rb +0 -22
  163. data/test/unit/method_matcher_test.rb +0 -23
  164. data/test/unit/missing_expectation_test.rb +0 -42
  165. data/test/unit/mock_test.rb +0 -323
  166. data/test/unit/multiple_yields_test.rb +0 -18
  167. data/test/unit/no_yield_test.rb +0 -18
  168. data/test/unit/object_inspect_test.rb +0 -37
  169. data/test/unit/object_test.rb +0 -165
  170. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  171. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  172. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  173. data/test/unit/parameter_matchers/has_entries_test.rb +0 -30
  174. data/test/unit/parameter_matchers/has_entry_test.rb +0 -40
  175. data/test/unit/parameter_matchers/has_key_test.rb +0 -25
  176. data/test/unit/parameter_matchers/has_value_test.rb +0 -25
  177. data/test/unit/parameter_matchers/includes_test.rb +0 -25
  178. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  179. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  180. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  181. data/test/unit/parameter_matchers/not_test.rb +0 -26
  182. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -25
  183. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  184. data/test/unit/parameters_matcher_test.rb +0 -121
  185. data/test/unit/return_values_test.rb +0 -63
  186. data/test/unit/sequence_test.rb +0 -104
  187. data/test/unit/setup_and_teardown_test.rb +0 -76
  188. data/test/unit/single_return_value_test.rb +0 -33
  189. data/test/unit/single_yield_test.rb +0 -18
  190. data/test/unit/string_inspect_test.rb +0 -11
  191. data/test/unit/stub_test.rb +0 -24
  192. data/test/unit/yield_parameters_test.rb +0 -93
@@ -1,18 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "test_helper")
2
-
3
- require 'mocha/single_yield'
4
-
5
- class SingleYieldTest < Test::Unit::TestCase
6
-
7
- include Mocha
8
-
9
- def test_should_provide_parameters_for_single_yield_in_single_invocation
10
- parameter_group = SingleYield.new(1, 2, 3)
11
- parameter_groups = []
12
- parameter_group.each do |parameters|
13
- parameter_groups << parameters
14
- end
15
- assert_equal [[1, 2, 3]], parameter_groups
16
- end
17
-
18
- end
@@ -1,11 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "test_helper")
2
- require 'mocha/inspect'
3
-
4
- class StringInspectTest < Test::Unit::TestCase
5
-
6
- def test_should_replace_escaped_quotes_with_single_quote
7
- string = "my_string"
8
- assert_equal "'my_string'", string.mocha_inspect
9
- end
10
-
11
- end
@@ -1,24 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "test_helper")
2
- require 'mocha/stub'
3
-
4
- class StubTest < Test::Unit::TestCase
5
-
6
- include Mocha
7
-
8
- def test_should_always_verify_successfully
9
- stub = Stub.new(nil, :expected_method)
10
- assert stub.verify
11
- stub.invoke
12
- assert stub.verify
13
- end
14
-
15
- def test_should_match_successfully_for_any_number_of_invocations
16
- stub = Stub.new(nil, :expected_method)
17
- assert stub.match?(:expected_method)
18
- stub.invoke
19
- assert stub.match?(:expected_method)
20
- stub.invoke
21
- assert stub.match?(:expected_method)
22
- end
23
-
24
- end
@@ -1,93 +0,0 @@
1
- require File.join(File.dirname(__FILE__), "..", "test_helper")
2
-
3
- require 'mocha/yield_parameters'
4
- require 'mocha/no_yields'
5
- require 'mocha/single_yield'
6
- require 'mocha/multiple_yields'
7
-
8
- class YieldParametersTest < Test::Unit::TestCase
9
-
10
- include Mocha
11
-
12
- def test_should_return_null_yield_parameter_group_by_default
13
- yield_parameters = YieldParameters.new
14
- assert yield_parameters.next_invocation.is_a?(NoYields)
15
- end
16
-
17
- def test_should_return_single_yield_parameter_group
18
- yield_parameters = YieldParameters.new
19
- yield_parameters.add(1, 2, 3)
20
- parameter_group = yield_parameters.next_invocation
21
- assert parameter_group.is_a?(SingleYield)
22
- assert_equal [1, 2, 3], parameter_group.parameters
23
- end
24
-
25
- def test_should_keep_returning_single_yield_parameter_group
26
- yield_parameters = YieldParameters.new
27
- yield_parameters.add(1, 2, 3)
28
- yield_parameters.next_invocation
29
- parameter_group = yield_parameters.next_invocation
30
- assert parameter_group.is_a?(SingleYield)
31
- assert_equal [1, 2, 3], parameter_group.parameters
32
- parameter_group = yield_parameters.next_invocation
33
- assert parameter_group.is_a?(SingleYield)
34
- assert_equal [1, 2, 3], parameter_group.parameters
35
- end
36
-
37
- def test_should_return_consecutive_single_yield_parameter_groups
38
- yield_parameters = YieldParameters.new
39
- yield_parameters.add(1, 2, 3)
40
- yield_parameters.add(4, 5)
41
- parameter_group = yield_parameters.next_invocation
42
- assert parameter_group.is_a?(SingleYield)
43
- assert_equal [1, 2, 3], parameter_group.parameters
44
- parameter_group = yield_parameters.next_invocation
45
- assert parameter_group.is_a?(SingleYield)
46
- assert_equal [4, 5], parameter_group.parameters
47
- end
48
-
49
- def test_should_return_multiple_yield_parameter_group
50
- yield_parameters = YieldParameters.new
51
- yield_parameters.multiple_add([1, 2, 3], [4, 5])
52
- parameter_group = yield_parameters.next_invocation
53
- assert parameter_group.is_a?(MultipleYields)
54
- assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
55
- end
56
-
57
- def test_should_keep_returning_multiple_yield_parameter_group
58
- yield_parameters = YieldParameters.new
59
- yield_parameters.multiple_add([1, 2, 3], [4, 5])
60
- yield_parameters.next_invocation
61
- parameter_group = yield_parameters.next_invocation
62
- assert parameter_group.is_a?(MultipleYields)
63
- assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
64
- parameter_group = yield_parameters.next_invocation
65
- assert parameter_group.is_a?(MultipleYields)
66
- assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
67
- end
68
-
69
- def test_should_return_consecutive_multiple_yield_parameter_groups
70
- yield_parameters = YieldParameters.new
71
- yield_parameters.multiple_add([1, 2, 3], [4, 5])
72
- yield_parameters.multiple_add([6, 7], [8, 9, 0])
73
- parameter_group = yield_parameters.next_invocation
74
- assert parameter_group.is_a?(MultipleYields)
75
- assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
76
- parameter_group = yield_parameters.next_invocation
77
- assert parameter_group.is_a?(MultipleYields)
78
- assert_equal [[6, 7], [8, 9, 0]], parameter_group.parameter_groups
79
- end
80
-
81
- def test_should_return_consecutive_single_and_multiple_yield_parameter_groups
82
- yield_parameters = YieldParameters.new
83
- yield_parameters.add(1, 2, 3)
84
- yield_parameters.multiple_add([4, 5, 6], [7, 8])
85
- parameter_group = yield_parameters.next_invocation
86
- assert parameter_group.is_a?(SingleYield)
87
- assert_equal [1, 2, 3], parameter_group.parameters
88
- parameter_group = yield_parameters.next_invocation
89
- assert parameter_group.is_a?(MultipleYields)
90
- assert_equal [[4, 5, 6], [7, 8]], parameter_group.parameter_groups
91
- end
92
-
93
- end