mocha 0.5.6 → 3.1.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 (191) 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 +1247 -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 +25 -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 +6 -15
  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 +562 -171
  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 +54 -30
  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 +26 -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 +192 -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/mocha.gemspec +40 -0
  104. metadata +129 -145
  105. data/COPYING +0 -3
  106. data/README +0 -35
  107. data/RELEASE +0 -188
  108. data/examples/misc.rb +0 -44
  109. data/examples/mocha.rb +0 -26
  110. data/examples/stubba.rb +0 -65
  111. data/lib/mocha/auto_verify.rb +0 -118
  112. data/lib/mocha/class_method.rb +0 -66
  113. data/lib/mocha/infinite_range.rb +0 -25
  114. data/lib/mocha/is_a.rb +0 -9
  115. data/lib/mocha/metaclass.rb +0 -7
  116. data/lib/mocha/missing_expectation.rb +0 -17
  117. data/lib/mocha/multiple_yields.rb +0 -20
  118. data/lib/mocha/no_yields.rb +0 -11
  119. data/lib/mocha/object.rb +0 -110
  120. data/lib/mocha/parameter_matchers/base.rb +0 -15
  121. data/lib/mocha/parameter_matchers/object.rb +0 -9
  122. data/lib/mocha/pretty_parameters.rb +0 -28
  123. data/lib/mocha/setup_and_teardown.rb +0 -23
  124. data/lib/mocha/single_yield.rb +0 -18
  125. data/lib/mocha/standalone.rb +0 -32
  126. data/lib/mocha/stub.rb +0 -18
  127. data/lib/mocha/test_case_adapter.rb +0 -49
  128. data/lib/mocha_standalone.rb +0 -2
  129. data/lib/stubba.rb +0 -2
  130. data/test/acceptance/expected_invocation_count_acceptance_test.rb +0 -187
  131. data/test/acceptance/mocha_acceptance_test.rb +0 -98
  132. data/test/acceptance/mock_with_initializer_block_acceptance_test.rb +0 -44
  133. data/test/acceptance/mocked_methods_dispatch_acceptance_test.rb +0 -71
  134. data/test/acceptance/optional_parameters_acceptance_test.rb +0 -63
  135. data/test/acceptance/parameter_matcher_acceptance_test.rb +0 -117
  136. data/test/acceptance/partial_mocks_acceptance_test.rb +0 -40
  137. data/test/acceptance/sequence_acceptance_test.rb +0 -179
  138. data/test/acceptance/standalone_acceptance_test.rb +0 -131
  139. data/test/acceptance/stubba_acceptance_test.rb +0 -102
  140. data/test/active_record_test_case.rb +0 -36
  141. data/test/deprecation_disabler.rb +0 -15
  142. data/test/execution_point.rb +0 -34
  143. data/test/integration/mocha_test_result_integration_test.rb +0 -105
  144. data/test/integration/stubba_integration_test.rb +0 -89
  145. data/test/integration/stubba_test_result_integration_test.rb +0 -85
  146. data/test/method_definer.rb +0 -18
  147. data/test/test_helper.rb +0 -12
  148. data/test/test_runner.rb +0 -31
  149. data/test/unit/any_instance_method_test.rb +0 -126
  150. data/test/unit/array_inspect_test.rb +0 -16
  151. data/test/unit/auto_verify_test.rb +0 -129
  152. data/test/unit/central_test.rb +0 -124
  153. data/test/unit/class_method_test.rb +0 -200
  154. data/test/unit/date_time_inspect_test.rb +0 -21
  155. data/test/unit/expectation_error_test.rb +0 -24
  156. data/test/unit/expectation_list_test.rb +0 -75
  157. data/test/unit/expectation_raiser_test.rb +0 -28
  158. data/test/unit/expectation_test.rb +0 -483
  159. data/test/unit/hash_inspect_test.rb +0 -16
  160. data/test/unit/infinite_range_test.rb +0 -53
  161. data/test/unit/metaclass_test.rb +0 -22
  162. data/test/unit/method_matcher_test.rb +0 -23
  163. data/test/unit/missing_expectation_test.rb +0 -42
  164. data/test/unit/mock_test.rb +0 -323
  165. data/test/unit/multiple_yields_test.rb +0 -18
  166. data/test/unit/no_yield_test.rb +0 -18
  167. data/test/unit/object_inspect_test.rb +0 -37
  168. data/test/unit/object_test.rb +0 -165
  169. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  170. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  171. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  172. data/test/unit/parameter_matchers/has_entries_test.rb +0 -30
  173. data/test/unit/parameter_matchers/has_entry_test.rb +0 -40
  174. data/test/unit/parameter_matchers/has_key_test.rb +0 -25
  175. data/test/unit/parameter_matchers/has_value_test.rb +0 -25
  176. data/test/unit/parameter_matchers/includes_test.rb +0 -25
  177. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  178. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  179. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  180. data/test/unit/parameter_matchers/not_test.rb +0 -26
  181. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -25
  182. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  183. data/test/unit/parameters_matcher_test.rb +0 -121
  184. data/test/unit/return_values_test.rb +0 -63
  185. data/test/unit/sequence_test.rb +0 -104
  186. data/test/unit/setup_and_teardown_test.rb +0 -76
  187. data/test/unit/single_return_value_test.rb +0 -33
  188. data/test/unit/single_yield_test.rb +0 -18
  189. data/test/unit/string_inspect_test.rb +0 -11
  190. data/test/unit/stub_test.rb +0 -24
  191. 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