mocha 1.11.2 → 1.12.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 (200) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +1 -1
  3. data/README.md +28 -30
  4. data/RELEASE.md +25 -0
  5. data/Rakefile +6 -1
  6. data/lib/mocha/cardinality.rb +30 -27
  7. data/lib/mocha/expectation.rb +24 -24
  8. data/lib/mocha/mock.rb +1 -1
  9. data/lib/mocha/mockery.rb +9 -22
  10. data/lib/mocha/state_machine.rb +30 -38
  11. data/lib/mocha/version.rb +1 -1
  12. data/mocha.gemspec +3 -1
  13. metadata +5 -192
  14. data/docs/CNAME +0 -1
  15. data/docs/Mocha.html +0 -254
  16. data/docs/Mocha/API.html +0 -1285
  17. data/docs/Mocha/ClassMethods.html +0 -264
  18. data/docs/Mocha/Configuration.html +0 -1525
  19. data/docs/Mocha/Expectation.html +0 -2862
  20. data/docs/Mocha/ExpectationError.html +0 -152
  21. data/docs/Mocha/ExpectationErrorFactory.html +0 -260
  22. data/docs/Mocha/Hooks.html +0 -370
  23. data/docs/Mocha/Integration.html +0 -125
  24. data/docs/Mocha/Integration/MiniTest.html +0 -123
  25. data/docs/Mocha/Integration/MiniTest/Adapter.html +0 -164
  26. data/docs/Mocha/Integration/TestUnit.html +0 -123
  27. data/docs/Mocha/Integration/TestUnit/Adapter.html +0 -164
  28. data/docs/Mocha/Mock.html +0 -1210
  29. data/docs/Mocha/ObjectMethods.html +0 -765
  30. data/docs/Mocha/ParameterMatchers.html +0 -2949
  31. data/docs/Mocha/ParameterMatchers/AllOf.html +0 -153
  32. data/docs/Mocha/ParameterMatchers/AnyOf.html +0 -153
  33. data/docs/Mocha/ParameterMatchers/AnyParameters.html +0 -153
  34. data/docs/Mocha/ParameterMatchers/Anything.html +0 -153
  35. data/docs/Mocha/ParameterMatchers/Base.html +0 -441
  36. data/docs/Mocha/ParameterMatchers/Equals.html +0 -153
  37. data/docs/Mocha/ParameterMatchers/EquivalentUri.html +0 -153
  38. data/docs/Mocha/ParameterMatchers/HasEntries.html +0 -153
  39. data/docs/Mocha/ParameterMatchers/HasEntry.html +0 -153
  40. data/docs/Mocha/ParameterMatchers/HasKey.html +0 -153
  41. data/docs/Mocha/ParameterMatchers/HasValue.html +0 -153
  42. data/docs/Mocha/ParameterMatchers/Includes.html +0 -153
  43. data/docs/Mocha/ParameterMatchers/InstanceOf.html +0 -153
  44. data/docs/Mocha/ParameterMatchers/IsA.html +0 -153
  45. data/docs/Mocha/ParameterMatchers/KindOf.html +0 -153
  46. data/docs/Mocha/ParameterMatchers/Not.html +0 -153
  47. data/docs/Mocha/ParameterMatchers/Optionally.html +0 -153
  48. data/docs/Mocha/ParameterMatchers/RegexpMatches.html +0 -153
  49. data/docs/Mocha/ParameterMatchers/RespondsWith.html +0 -153
  50. data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +0 -153
  51. data/docs/Mocha/Sequence.html +0 -149
  52. data/docs/Mocha/StateMachine.html +0 -527
  53. data/docs/Mocha/StateMachine/State.html +0 -140
  54. data/docs/Mocha/StateMachine/StatePredicate.html +0 -140
  55. data/docs/Mocha/StubbingError.html +0 -150
  56. data/docs/_index.html +0 -519
  57. data/docs/class_list.html +0 -51
  58. data/docs/css/common.css +0 -1
  59. data/docs/css/full_list.css +0 -58
  60. data/docs/css/style.css +0 -496
  61. data/docs/file.COPYING.html +0 -81
  62. data/docs/file.MIT-LICENSE.html +0 -85
  63. data/docs/file.README.html +0 -448
  64. data/docs/file.RELEASE.html +0 -1028
  65. data/docs/file_list.html +0 -71
  66. data/docs/frames.html +0 -17
  67. data/docs/index.html +0 -448
  68. data/docs/js/app.js +0 -303
  69. data/docs/js/full_list.js +0 -216
  70. data/docs/js/jquery.js +0 -4
  71. data/docs/method_list.html +0 -651
  72. data/docs/top-level-namespace.html +0 -118
  73. data/test/acceptance/acceptance_test_helper.rb +0 -42
  74. data/test/acceptance/bug_18914_test.rb +0 -37
  75. data/test/acceptance/bug_21465_test.rb +0 -31
  76. data/test/acceptance/bug_21563_test.rb +0 -22
  77. data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +0 -69
  78. data/test/acceptance/exception_rescue_test.rb +0 -53
  79. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  80. data/test/acceptance/expected_invocation_count_test.rb +0 -229
  81. data/test/acceptance/failure_messages_test.rb +0 -77
  82. data/test/acceptance/issue_272_test.rb +0 -50
  83. data/test/acceptance/issue_457_test.rb +0 -31
  84. data/test/acceptance/issue_65_test.rb +0 -64
  85. data/test/acceptance/issue_70_test.rb +0 -53
  86. data/test/acceptance/mocha_example_test.rb +0 -106
  87. data/test/acceptance/mocha_test_result_test.rb +0 -83
  88. data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +0 -98
  89. data/test/acceptance/mock_test.rb +0 -191
  90. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -75
  91. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -66
  92. data/test/acceptance/multiple_yielding_test.rb +0 -59
  93. data/test/acceptance/optional_parameters_test.rb +0 -67
  94. data/test/acceptance/parameter_matcher_test.rb +0 -299
  95. data/test/acceptance/partial_mocks_test.rb +0 -44
  96. data/test/acceptance/prepend_test.rb +0 -86
  97. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -76
  98. data/test/acceptance/raise_exception_test.rb +0 -36
  99. data/test/acceptance/return_value_test.rb +0 -49
  100. data/test/acceptance/sequence_test.rb +0 -189
  101. data/test/acceptance/states_test.rb +0 -71
  102. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -64
  103. data/test/acceptance/stub_any_instance_method_test.rb +0 -301
  104. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -105
  105. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  106. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -73
  107. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -144
  108. data/test/acceptance/stub_everything_test.rb +0 -53
  109. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -91
  110. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -67
  111. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -67
  112. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -136
  113. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -76
  114. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  115. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -67
  116. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -70
  117. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -38
  118. data/test/acceptance/stub_module_method_test.rb +0 -200
  119. data/test/acceptance/stub_test.rb +0 -49
  120. data/test/acceptance/stubba_example_test.rb +0 -103
  121. data/test/acceptance/stubba_test_result_test.rb +0 -71
  122. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -63
  123. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  124. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -52
  125. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -63
  126. data/test/acceptance/stubbing_nil_test.rb +0 -60
  127. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -157
  128. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  129. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -145
  130. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -128
  131. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  132. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -141
  133. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -70
  134. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -33
  135. data/test/acceptance/throw_test.rb +0 -42
  136. data/test/acceptance/unexpected_invocation_test.rb +0 -23
  137. data/test/acceptance/unstubbing_test.rb +0 -194
  138. data/test/acceptance/yielding_test.rb +0 -80
  139. data/test/assertions.rb +0 -8
  140. data/test/deprecation_disabler.rb +0 -15
  141. data/test/execution_point.rb +0 -36
  142. data/test/integration/mini_test_test.rb +0 -8
  143. data/test/integration/shared_tests.rb +0 -178
  144. data/test/integration/test_unit_test.rb +0 -8
  145. data/test/method_definer.rb +0 -16
  146. data/test/mini_test_result.rb +0 -96
  147. data/test/minitest_result.rb +0 -48
  148. data/test/simple_counter.rb +0 -11
  149. data/test/test_helper.rb +0 -58
  150. data/test/test_runner.rb +0 -58
  151. data/test/test_unit_result.rb +0 -22
  152. data/test/unit/any_instance_method_test.rb +0 -175
  153. data/test/unit/array_inspect_test.rb +0 -14
  154. data/test/unit/backtrace_filter_test.rb +0 -17
  155. data/test/unit/cardinality_test.rb +0 -72
  156. data/test/unit/central_test.rb +0 -98
  157. data/test/unit/change_state_side_effect_test.rb +0 -37
  158. data/test/unit/class_methods_test.rb +0 -69
  159. data/test/unit/configuration_test.rb +0 -37
  160. data/test/unit/date_time_inspect_test.rb +0 -19
  161. data/test/unit/exception_raiser_test.rb +0 -45
  162. data/test/unit/expectation_list_test.rb +0 -82
  163. data/test/unit/expectation_test.rb +0 -504
  164. data/test/unit/hash_inspect_test.rb +0 -14
  165. data/test/unit/hooks_test.rb +0 -35
  166. data/test/unit/in_state_ordering_constraint_test.rb +0 -39
  167. data/test/unit/instance_method_test.rb +0 -282
  168. data/test/unit/method_matcher_test.rb +0 -26
  169. data/test/unit/mock_test.rb +0 -372
  170. data/test/unit/mockery_test.rb +0 -171
  171. data/test/unit/module_methods_test.rb +0 -16
  172. data/test/unit/object_inspect_test.rb +0 -60
  173. data/test/unit/object_methods_test.rb +0 -63
  174. data/test/unit/parameter_matchers/all_of_test.rb +0 -24
  175. data/test/unit/parameter_matchers/any_of_test.rb +0 -24
  176. data/test/unit/parameter_matchers/anything_test.rb +0 -19
  177. data/test/unit/parameter_matchers/equals_test.rb +0 -23
  178. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -41
  179. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  180. data/test/unit/parameter_matchers/has_entry_test.rb +0 -128
  181. data/test/unit/parameter_matchers/has_key_test.rb +0 -54
  182. data/test/unit/parameter_matchers/has_value_test.rb +0 -55
  183. data/test/unit/parameter_matchers/includes_test.rb +0 -106
  184. data/test/unit/parameter_matchers/instance_of_test.rb +0 -23
  185. data/test/unit/parameter_matchers/is_a_test.rb +0 -23
  186. data/test/unit/parameter_matchers/kind_of_test.rb +0 -23
  187. data/test/unit/parameter_matchers/not_test.rb +0 -24
  188. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -45
  189. data/test/unit/parameter_matchers/responds_with_test.rb +0 -38
  190. data/test/unit/parameter_matchers/stub_matcher.rb +0 -23
  191. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -23
  192. data/test/unit/parameters_matcher_test.rb +0 -119
  193. data/test/unit/receivers_test.rb +0 -96
  194. data/test/unit/return_values_test.rb +0 -66
  195. data/test/unit/sequence_test.rb +0 -100
  196. data/test/unit/single_return_value_test.rb +0 -17
  197. data/test/unit/state_machine_test.rb +0 -96
  198. data/test/unit/string_inspect_test.rb +0 -9
  199. data/test/unit/thrower_test.rb +0 -23
  200. data/test/unit/yield_parameters_test.rb +0 -73
@@ -1,23 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/kind_of'
4
- require 'mocha/inspect'
5
-
6
- class KindOfTest < Mocha::TestCase
7
- include Mocha::ParameterMatchers
8
-
9
- def test_should_match_object_that_is_a_kind_of_specified_class
10
- matcher = kind_of(Integer)
11
- assert matcher.matches?([99])
12
- end
13
-
14
- def test_should_not_match_object_that_is_not_a_kind_of_specified_class
15
- matcher = kind_of(Integer)
16
- assert !matcher.matches?(['string'])
17
- end
18
-
19
- def test_should_describe_matcher
20
- matcher = kind_of(Integer)
21
- assert_equal 'kind_of(Integer)', matcher.mocha_inspect
22
- end
23
- end
@@ -1,24 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/not'
4
- require 'mocha/inspect'
5
- require 'stub_matcher'
6
-
7
- class NotTest < Mocha::TestCase
8
- include Mocha::ParameterMatchers
9
-
10
- def test_should_match_if_matcher_does_not_match
11
- matcher = Not(Stub::Matcher.new(false))
12
- assert matcher.matches?(['any_old_value'])
13
- end
14
-
15
- def test_should_not_match_if_matcher_does_match
16
- matcher = Not(Stub::Matcher.new(true))
17
- assert !matcher.matches?(['any_old_value'])
18
- end
19
-
20
- def test_should_describe_matcher
21
- matcher = Not(Stub::Matcher.new(true))
22
- assert_equal 'Not(matcher(true))', matcher.mocha_inspect
23
- end
24
- end
@@ -1,45 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/regexp_matches'
4
- require 'mocha/inspect'
5
-
6
- class RegexpMatchesTest < Mocha::TestCase
7
- include Mocha::ParameterMatchers
8
-
9
- def test_should_match_parameter_matching_regular_expression
10
- matcher = regexp_matches(/oo/)
11
- assert matcher.matches?(['foo'])
12
- end
13
-
14
- def test_should_not_match_parameter_not_matching_regular_expression
15
- matcher = regexp_matches(/oo/)
16
- assert !matcher.matches?(['bar'])
17
- end
18
-
19
- def test_should_describe_matcher
20
- matcher = regexp_matches(/oo/)
21
- assert_equal 'regexp_matches(/oo/)', matcher.mocha_inspect
22
- end
23
-
24
- def test_should_not_raise_error_on_empty_arguments
25
- matcher = regexp_matches(/oo/)
26
- assert_nothing_raised { matcher.matches?([]) }
27
- end
28
-
29
- def test_should_not_match_on_empty_arguments
30
- matcher = regexp_matches(/oo/)
31
- assert !matcher.matches?([])
32
- end
33
-
34
- def test_should_not_raise_error_on_argument_that_does_not_respond_to_equals_tilde
35
- object_not_responding_to_equals_tilde = Class.new { undef =~ }.new
36
- matcher = regexp_matches(/oo/)
37
- assert_nothing_raised { matcher.matches?([object_not_responding_to_equals_tilde]) }
38
- end
39
-
40
- def test_should_not_match_on_argument_that_does_not_respond_to_equals_tilde
41
- object_not_responding_to_equals_tilde = Class.new { undef =~ }.new
42
- matcher = regexp_matches(/oo/)
43
- assert !matcher.matches?([object_not_responding_to_equals_tilde])
44
- end
45
- end
@@ -1,38 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/responds_with'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/inspect'
6
-
7
- class RespondsWithTest < Mocha::TestCase
8
- include Mocha::ParameterMatchers
9
-
10
- def test_should_match_parameter_responding_with_expected_value
11
- matcher = responds_with(:upcase, 'FOO')
12
- assert matcher.matches?(['foo'])
13
- end
14
-
15
- def test_should_not_match_parameter_responding_with_unexpected_value
16
- matcher = responds_with(:upcase, 'FOO')
17
- assert !matcher.matches?(['bar'])
18
- end
19
-
20
- def test_should_match_parameter_responding_with_nested_responds_with_matcher
21
- matcher = responds_with(:foo, responds_with(:bar, 'baz'))
22
- object = Class.new do
23
- def foo
24
- Class.new do
25
- def bar
26
- 'baz'
27
- end
28
- end.new
29
- end
30
- end.new
31
- assert matcher.matches?([object])
32
- end
33
-
34
- def test_should_describe_matcher
35
- matcher = responds_with(:foo, :bar)
36
- assert_equal 'responds_with(:foo, :bar)', matcher.mocha_inspect
37
- end
38
- end
@@ -1,23 +0,0 @@
1
- module Stub
2
- class Matcher
3
- attr_accessor :value
4
-
5
- def initialize(matches)
6
- @matches = matches
7
- end
8
-
9
- def matches?(available_parameters)
10
- value = available_parameters.shift
11
- @value = value
12
- @matches
13
- end
14
-
15
- def mocha_inspect
16
- "matcher(#{@matches})"
17
- end
18
-
19
- def to_matcher
20
- self
21
- end
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/yaml_equivalent'
4
- require 'mocha/inspect'
5
-
6
- class YamlEquivalentTest < Mocha::TestCase
7
- include Mocha::ParameterMatchers
8
-
9
- def test_should_match_parameter_matching_yaml_representation_of_object
10
- matcher = yaml_equivalent([1, 2, 3])
11
- assert matcher.matches?(["--- \n- 1\n- 2\n- 3\n"])
12
- end
13
-
14
- def test_should_not_match_parameter_matching_yaml_representation_of_object
15
- matcher = yaml_equivalent([1, 2, 3])
16
- assert !matcher.matches?(["--- \n- 4\n- 5\n"])
17
- end
18
-
19
- def test_should_describe_matcher
20
- matcher = yaml_equivalent([1, 2, 3])
21
- assert_equal 'yaml_equivalent([1, 2, 3])', matcher.mocha_inspect
22
- end
23
- end
@@ -1,119 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'mocha/parameters_matcher'
3
-
4
- class ParametersMatcherTest < Mocha::TestCase
5
- include Mocha
6
-
7
- def test_should_match_any_actual_parameters_if_no_expected_parameters_specified
8
- parameters_matcher = ParametersMatcher.new
9
- assert parameters_matcher.match?([1, 2, 3])
10
- end
11
-
12
- def test_should_match_if_actual_parameters_are_same_as_expected_parameters
13
- parameters_matcher = ParametersMatcher.new([4, 5, 6])
14
- assert parameters_matcher.match?([4, 5, 6])
15
- end
16
-
17
- def test_should_not_match_if_actual_parameters_are_different_from_expected_parameters
18
- parameters_matcher = ParametersMatcher.new([4, 5, 6])
19
- assert !parameters_matcher.match?([1, 2, 3])
20
- end
21
-
22
- def test_should_not_match_if_there_are_less_actual_parameters_than_expected_parameters
23
- parameters_matcher = ParametersMatcher.new([4, 5, 6])
24
- assert !parameters_matcher.match?([4, 5])
25
- end
26
-
27
- def test_should_not_match_if_there_are_more_actual_parameters_than_expected_parameters
28
- parameters_matcher = ParametersMatcher.new([4, 5])
29
- assert !parameters_matcher.match?([4, 5, 6])
30
- end
31
-
32
- def test_should_not_match_if_not_all_required_parameters_are_supplied
33
- optionals = ParameterMatchers::Optionally.new(6, 7)
34
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
35
- assert !parameters_matcher.match?([4])
36
- end
37
-
38
- def test_should_match_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
39
- optionals = ParameterMatchers::Optionally.new(6, 7)
40
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
41
- assert parameters_matcher.match?([4, 5])
42
- end
43
-
44
- def test_should_match_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
45
- optionals = ParameterMatchers::Optionally.new(6, 7)
46
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
47
- assert parameters_matcher.match?([4, 5, 6])
48
- end
49
-
50
- def test_should_match_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
51
- optionals = ParameterMatchers::Optionally.new(6, 7)
52
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
53
- assert parameters_matcher.match?([4, 5, 6, 7])
54
- end
55
-
56
- def test_should_not_match_if_all_required_and_optional_parameters_match_but_too_many_optional_parameters_are_supplied
57
- optionals = ParameterMatchers::Optionally.new(6, 7)
58
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
59
- assert !parameters_matcher.match?([4, 5, 6, 7, 8])
60
- end
61
-
62
- def test_should_not_match_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
63
- optionals = ParameterMatchers::Optionally.new(6, 7)
64
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
65
- assert !parameters_matcher.match?([4, 5, 6, 0])
66
- end
67
-
68
- def test_should_not_match_if_some_required_parameters_do_not_match_although_all_optional_parameters_do_match
69
- optionals = ParameterMatchers::Optionally.new(6, 7)
70
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
71
- assert !parameters_matcher.match?([4, 0, 6])
72
- end
73
-
74
- def test_should_not_match_if_all_required_parameters_match_but_no_optional_parameters_match
75
- optionals = ParameterMatchers::Optionally.new(6, 7)
76
- parameters_matcher = ParametersMatcher.new([4, 5, optionals])
77
- assert !parameters_matcher.match?([4, 5, 0, 0])
78
- end
79
-
80
- def test_should_match_if_actual_parameters_satisfy_matching_block
81
- parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
82
- assert parameters_matcher.match?([1, 2])
83
- end
84
-
85
- def test_should_not_match_if_actual_parameters_do_not_satisfy_matching_block
86
- parameters_matcher = ParametersMatcher.new { |x, y| x + y == 3 }
87
- assert !parameters_matcher.match?([2, 3])
88
- end
89
-
90
- def test_should_remove_outer_array_braces
91
- params = [1, 2, [3, 4]]
92
- parameters_matcher = ParametersMatcher.new(params)
93
- assert_equal '(1, 2, [3, 4])', parameters_matcher.mocha_inspect
94
- end
95
-
96
- def test_should_display_numeric_arguments_as_is
97
- params = [1, 2, 3]
98
- parameters_matcher = ParametersMatcher.new(params)
99
- assert_equal '(1, 2, 3)', parameters_matcher.mocha_inspect
100
- end
101
-
102
- def test_should_remove_curly_braces_if_hash_is_only_argument
103
- params = [{ :a => 1, :z => 2 }]
104
- parameters_matcher = ParametersMatcher.new(params)
105
- assert_nil parameters_matcher.mocha_inspect.index('{')
106
- assert_nil parameters_matcher.mocha_inspect.index('}')
107
- end
108
-
109
- def test_should_not_remove_curly_braces_if_hash_is_not_the_only_argument
110
- params = [1, { :a => 1 }]
111
- parameters_matcher = ParametersMatcher.new(params)
112
- assert_equal '(1, {:a => 1})', parameters_matcher.mocha_inspect
113
- end
114
-
115
- def test_should_indicate_that_matcher_will_match_any_actual_parameters
116
- parameters_matcher = ParametersMatcher.new
117
- assert_equal '(any_parameters)', parameters_matcher.mocha_inspect
118
- end
119
- end
@@ -1,96 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
- require 'mocha/receivers'
3
-
4
- class ObjectReceiverTest < Mocha::TestCase
5
- include Mocha
6
-
7
- class FakeObject
8
- def initialize(mocha)
9
- @mocha = mocha
10
- end
11
-
12
- def mocha(_instantiate)
13
- @mocha
14
- end
15
-
16
- def is_a?(_klass)
17
- false
18
- end
19
- end
20
-
21
- class FakeClass
22
- attr_reader :superclass
23
-
24
- def initialize(superclass, mocha)
25
- @superclass = superclass
26
- @mocha = mocha
27
- end
28
-
29
- def mocha(_instantiate)
30
- @mocha
31
- end
32
-
33
- def is_a?(klass)
34
- klass == Class
35
- end
36
- end
37
-
38
- def test_mocks_returns_mock_for_object
39
- object = FakeObject.new(:mocha)
40
- receiver = ObjectReceiver.new(object)
41
- assert_equal [:mocha], receiver.mocks
42
- end
43
-
44
- def test_mocks_returns_mocks_for_class_and_its_superclasses
45
- grandparent = FakeClass.new(nil, :grandparent_mocha)
46
- parent = FakeClass.new(grandparent, :parent_mocha)
47
- klass = FakeClass.new(parent, :mocha)
48
- receiver = ObjectReceiver.new(klass)
49
- assert_equal [:mocha, :parent_mocha, :grandparent_mocha], receiver.mocks
50
- end
51
- end
52
-
53
- class AnyInstanceReceiverTest < Mocha::TestCase
54
- include Mocha
55
-
56
- class FakeAnyInstanceClass
57
- class AnyInstance
58
- def initialize(mocha)
59
- @mocha = mocha
60
- end
61
-
62
- def mocha(_instantiate)
63
- @mocha
64
- end
65
- end
66
-
67
- attr_reader :superclass
68
-
69
- def initialize(superclass, mocha)
70
- @superclass = superclass
71
- @mocha = mocha
72
- end
73
-
74
- def any_instance
75
- AnyInstance.new(@mocha)
76
- end
77
- end
78
-
79
- def test_mocks_returns_mocks_for_class_and_its_superclasses
80
- grandparent = FakeAnyInstanceClass.new(nil, :grandparent_mocha)
81
- parent = FakeAnyInstanceClass.new(grandparent, :parent_mocha)
82
- klass = FakeAnyInstanceClass.new(parent, :mocha)
83
- receiver = AnyInstanceReceiver.new(klass)
84
- assert_equal [:mocha, :parent_mocha, :grandparent_mocha], receiver.mocks
85
- end
86
- end
87
-
88
- class DefaultReceiverTest < Mocha::TestCase
89
- include Mocha
90
-
91
- def test_mocks_returns_mock
92
- mock = :mocha
93
- receiver = DefaultReceiver.new(mock)
94
- assert_equal [:mocha], receiver.mocks
95
- end
96
- end
@@ -1,66 +0,0 @@
1
- require File.expand_path('../../test_helper', __FILE__)
2
-
3
- require 'mocha/invocation'
4
- require 'mocha/return_values'
5
-
6
- class ReturnValuesTest < Mocha::TestCase
7
- include Mocha
8
-
9
- def new_invocation
10
- Invocation.new(:irrelevant, :irrelevant)
11
- end
12
-
13
- def test_should_return_nil
14
- values = ReturnValues.new
15
- assert_nil values.next(new_invocation)
16
- end
17
-
18
- def test_should_keep_returning_nil
19
- values = ReturnValues.new
20
- values.next(new_invocation)
21
- assert_nil values.next(new_invocation)
22
- assert_nil values.next(new_invocation)
23
- end
24
-
25
- def test_should_return_evaluated_single_return_value
26
- values = ReturnValues.new(SingleReturnValue.new('value'))
27
- assert_equal 'value', values.next(new_invocation)
28
- end
29
-
30
- def test_should_keep_returning_evaluated_single_return_value
31
- values = ReturnValues.new(SingleReturnValue.new('value'))
32
- values.next(new_invocation)
33
- assert_equal 'value', values.next(new_invocation)
34
- assert_equal 'value', values.next(new_invocation)
35
- end
36
-
37
- def test_should_return_consecutive_evaluated_single_return_values
38
- values = ReturnValues.new(SingleReturnValue.new('value_1'), SingleReturnValue.new('value_2'))
39
- assert_equal 'value_1', values.next(new_invocation)
40
- assert_equal 'value_2', values.next(new_invocation)
41
- end
42
-
43
- def test_should_keep_returning_last_of_consecutive_evaluated_single_return_values
44
- values = ReturnValues.new(SingleReturnValue.new('value_1'), SingleReturnValue.new('value_2'))
45
- values.next(new_invocation)
46
- values.next(new_invocation)
47
- assert_equal 'value_2', values.next(new_invocation)
48
- assert_equal 'value_2', values.next(new_invocation)
49
- end
50
-
51
- def test_should_build_single_return_values_for_each_values
52
- values = ReturnValues.build('value_1', 'value_2', 'value_3').values
53
- assert_equal 'value_1', values[0].evaluate(new_invocation)
54
- assert_equal 'value_2', values[1].evaluate(new_invocation)
55
- assert_equal 'value_3', values[2].evaluate(new_invocation)
56
- end
57
-
58
- def test_should_combine_two_sets_of_return_values
59
- values1 = ReturnValues.build('value_1')
60
- values2 = ReturnValues.build('value_2a', 'value_2b')
61
- values = (values1 + values2).values
62
- assert_equal 'value_1', values[0].evaluate(new_invocation)
63
- assert_equal 'value_2a', values[1].evaluate(new_invocation)
64
- assert_equal 'value_2b', values[2].evaluate(new_invocation)
65
- end
66
- end