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,51 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/has_entries'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/inspect'
6
-
7
- class HasEntriesTest < Mocha::TestCase
8
- include Mocha::ParameterMatchers
9
-
10
- def test_should_match_hash_including_specified_entries
11
- matcher = has_entries(:key_1 => 'value_1', :key_2 => 'value_2')
12
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
13
- end
14
-
15
- def test_should_not_match_hash_not_including_specified_entries
16
- matcher = has_entries(:key_1 => 'value_2', :key_2 => 'value_2', :key_3 => 'value_3')
17
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
18
- end
19
-
20
- def test_should_describe_matcher
21
- matcher = has_entries(:key_1 => 'value_1', :key_2 => 'value_2')
22
- description = matcher.mocha_inspect
23
- matches = /has_entries\((.*)\)/.match(description)
24
- assert_not_nil matches[0]
25
- # rubocop:disable Security/Eval
26
- entries = eval(matches[1], binding, __FILE__, __LINE__)
27
- # rubocop:enable Security/Eval
28
- assert_equal 'value_1', entries[:key_1]
29
- assert_equal 'value_2', entries[:key_2]
30
- end
31
-
32
- def test_should_match_hash_including_specified_entries_with_nested_key_matchers
33
- matcher = has_entries(equals(:key_1) => 'value_1', equals(:key_2) => 'value_2')
34
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
35
- end
36
-
37
- def test_should_not_match_hash_not_including_specified_entries_with_nested_key_matchers
38
- matcher = has_entries(equals(:key_1) => 'value_2', equals(:key_2) => 'value_2', equals(:key_3) => 'value_3')
39
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
40
- end
41
-
42
- def test_should_match_hash_including_specified_entries_with_nested_value_matchers
43
- matcher = has_entries(:key_1 => equals('value_1'), :key_2 => equals('value_2'))
44
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
45
- end
46
-
47
- def test_should_not_match_hash_not_including_specified_entries_with_nested_value_matchers
48
- matcher = has_entries(:key_1 => equals('value_2'), :key_2 => equals('value_2'), :key_3 => equals('value_3'))
49
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
50
- end
51
- end
@@ -1,128 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/has_entry'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/parameter_matchers/equals'
6
- require 'mocha/inspect'
7
-
8
- class HasEntryTest < Mocha::TestCase
9
- include Mocha::ParameterMatchers
10
-
11
- def test_should_match_hash_including_specified_key_value_pair
12
- matcher = has_entry(:key_1, 'value_1')
13
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
14
- end
15
-
16
- def test_should_not_match_hash_not_including_specified_key_value_pair
17
- matcher = has_entry(:key_1, 'value_2')
18
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
19
- end
20
-
21
- def test_should_match_hash_including_specified_entry
22
- matcher = has_entry(:key_1 => 'value_1')
23
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
24
- end
25
-
26
- def test_should_not_match_hash_not_including_specified_entry
27
- matcher = has_entry(:key_1 => 'value_2')
28
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
29
- end
30
-
31
- def test_should_describe_matcher_with_key_value_pair
32
- matcher = has_entry(:key_1, 'value_1')
33
- assert_equal %{has_entry(:key_1 => "value_1")}, matcher.mocha_inspect
34
- end
35
-
36
- def test_should_describe_matcher_with_entry
37
- matcher = has_entry(:key_1 => 'value_1')
38
- assert_equal %{has_entry(:key_1 => "value_1")}, matcher.mocha_inspect
39
- end
40
-
41
- def test_should_match_hash_including_specified_entry_with_nested_key_matcher
42
- matcher = has_entry(equals(:key_1) => 'value_1')
43
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
44
- end
45
-
46
- def test_should_match_hash_including_specified_entry_with_nested_value_matcher
47
- matcher = has_entry(:key_1 => equals('value_1'))
48
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
49
- end
50
-
51
- def test_should_not_match_hash_not_including_specified_entry_with_nested_key_matcher
52
- matcher = has_entry(equals(:key_1) => 'value_2')
53
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
54
- end
55
-
56
- def test_should_not_match_hash_not_including_specified_entry_with_nested_value_matcher
57
- matcher = has_entry(:key_1 => equals('value_2'))
58
- assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
59
- end
60
-
61
- def test_should_not_match_object_that_doesnt_respond_to_keys
62
- matcher = has_entry(:key_1 => equals('value_2'))
63
- object = Class.new do
64
- def [](_key)
65
- 'value_2'
66
- end
67
- end.new
68
- assert !matcher.matches?([object])
69
- end
70
-
71
- def test_should_not_match_object_that_doesnt_respond_to_square_bracket
72
- matcher = has_entry(:key_1 => equals('value_2'))
73
- object = Class.new do
74
- def keys
75
- [:key_1]
76
- end
77
- end.new
78
- assert !matcher.matches?([object])
79
- end
80
-
81
- def test_should_raise_argument_error_if_single_argument_is_not_a_hash
82
- e = assert_raises(ArgumentError) do
83
- has_entry([])
84
- end
85
- assert_equal 'Argument is not a Hash.', e.message
86
- end
87
-
88
- def test_should_raise_argument_error_if_no_entries_are_supplied
89
- e = assert_raises(ArgumentError) do
90
- has_entry({})
91
- end
92
- assert_equal 'Argument has no entries.', e.message
93
- end
94
-
95
- def test_should_raise_argument_error_if_multiple_entries_are_supplied
96
- e = assert_raises(ArgumentError) do
97
- has_entry(:key_1 => 'value_1', :key_2 => 'value_2')
98
- end
99
- assert_equal 'Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.', e.message
100
- end
101
-
102
- def test_should_raise_argument_error_if_more_than_two_arguments_are_supplied
103
- e = assert_raises(ArgumentError) do
104
- has_entry(1, 2, 3)
105
- end
106
- assert_equal 'Too many arguments; use either a single argument (must be a Hash) or two arguments (a key and a value).', e.message
107
- end
108
-
109
- def test_should_match_array_as_key
110
- matcher = has_entry([:key_1, :key_2] => 'value_1')
111
- assert matcher.matches?([{ [:key_1, :key_2] => 'value_1', :key_3 => 'value_2' }])
112
- end
113
-
114
- def test_should_match_array_as_value
115
- matcher = has_entry(:key_1 => %w[value_1 value_2])
116
- assert matcher.matches?([{ :key_1 => %w[value_1 value_2] }])
117
- end
118
-
119
- def test_should_match_hash_as_value_and_key
120
- matcher = has_entry({ :key_1 => 'value_1', :key_2 => 'value_2' } => { :key_3 => 'value_3', :key_4 => 'value_4' })
121
- assert matcher.matches?([{ { :key_1 => 'value_1', :key_2 => 'value_2' } => { :key_3 => 'value_3', :key_4 => 'value_4' }, :key_5 => 'value_5' }])
122
- end
123
-
124
- def test_should_match_matcher_as_value_and_key
125
- matcher = has_entry(has_entry(:key_1 => 'value_1') => has_entry(:key_3 => 'value_3'))
126
- assert matcher.matches?([{ { :key_1 => 'value_1', :key_2 => 'value_2' } => { :key_3 => 'value_3', :key_4 => 'value_4' }, :key_5 => 'value_5' }])
127
- end
128
- end
@@ -1,54 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/has_key'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/inspect'
6
-
7
- class HasKeyTest < Mocha::TestCase
8
- include Mocha::ParameterMatchers
9
-
10
- def test_should_match_hash_including_specified_key
11
- matcher = has_key(:key_1)
12
- assert matcher.matches?([{ :key_1 => 1, :key_2 => 2 }])
13
- end
14
-
15
- def test_should_not_match_hash_not_including_specified_key
16
- matcher = has_key(:key_1)
17
- assert !matcher.matches?([{ :key_2 => 2 }])
18
- end
19
-
20
- def test_should_describe_matcher
21
- matcher = has_key(:key)
22
- assert_equal 'has_key(:key)', matcher.mocha_inspect
23
- end
24
-
25
- def test_should_match_hash_including_specified_key_with_nested_key_matcher
26
- matcher = has_key(equals(:key_1))
27
- assert matcher.matches?([{ :key_1 => 1, :key_2 => 2 }])
28
- end
29
-
30
- def test_should_not_match_hash_not_including_specified_key_with_nested_key_matcher
31
- matcher = has_key(equals(:key_1))
32
- assert !matcher.matches?([{ :key_2 => 2 }])
33
- end
34
-
35
- def test_should_not_raise_error_on_empty_arguments
36
- matcher = has_key(:key)
37
- assert_nothing_raised { matcher.matches?([]) }
38
- end
39
-
40
- def test_should_not_match_on_empty_arguments
41
- matcher = has_key(:key)
42
- assert !matcher.matches?([])
43
- end
44
-
45
- def test_should_not_raise_error_on_argument_that_does_not_respond_to_keys
46
- matcher = has_key(:key)
47
- assert_nothing_raised { matcher.matches?([:key]) }
48
- end
49
-
50
- def test_should_not_match_on_argument_that_does_not_respond_to_keys
51
- matcher = has_key(:key)
52
- assert !matcher.matches?([:key])
53
- end
54
- end
@@ -1,55 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/has_value'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/parameter_matchers/equals'
6
- require 'mocha/inspect'
7
-
8
- class HasValueTest < Mocha::TestCase
9
- include Mocha::ParameterMatchers
10
-
11
- def test_should_match_hash_including_specified_value
12
- matcher = has_value('value_1')
13
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
14
- end
15
-
16
- def test_should_not_match_hash_not_including_specified_value
17
- matcher = has_value('value_1')
18
- assert !matcher.matches?([{ :key_2 => 'value_2' }])
19
- end
20
-
21
- def test_should_describe_matcher
22
- matcher = has_value('value_1')
23
- assert_equal %{has_value("value_1")}, matcher.mocha_inspect
24
- end
25
-
26
- def test_should_match_hash_including_specified_value_with_nested_value_matcher
27
- matcher = has_value(equals('value_1'))
28
- assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
29
- end
30
-
31
- def test_should_not_match_hash_not_including_specified_value_with_nested_value_matcher
32
- matcher = has_value(equals('value_1'))
33
- assert !matcher.matches?([{ :key_2 => 'value_2' }])
34
- end
35
-
36
- def test_should_not_raise_error_on_empty_arguments
37
- matcher = has_value('value_1')
38
- assert_nothing_raised { matcher.matches?([]) }
39
- end
40
-
41
- def test_should_not_match_empty_arguments
42
- matcher = has_value('value_1')
43
- assert !matcher.matches?([])
44
- end
45
-
46
- def test_should_not_raise_error_on_argument_that_does_not_respond_to_values
47
- matcher = has_value('value_1')
48
- assert_nothing_raised { matcher.matches?(['value_1']) }
49
- end
50
-
51
- def test_should_not_match_on_argument_that_does_not_respond_to_values
52
- matcher = has_value('value_1')
53
- assert !matcher.matches?(['value_1'])
54
- end
55
- end
@@ -1,106 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/includes'
4
- require 'mocha/parameter_matchers/instance_methods'
5
- require 'mocha/parameter_matchers/has_key'
6
- require 'mocha/parameter_matchers/regexp_matches'
7
- require 'mocha/inspect'
8
-
9
- class IncludesTest < Mocha::TestCase
10
- include Mocha::ParameterMatchers
11
-
12
- def test_should_match_object_including_value
13
- matcher = includes(:x)
14
- assert matcher.matches?([[:x, :y, :z]])
15
- end
16
-
17
- def test_should_match_object_including_array_value
18
- matcher = includes([:x])
19
- assert matcher.matches?([[[:x], [:y], [:z]]])
20
- end
21
-
22
- def test_should_match_object_including_all_values
23
- matcher = includes(:x, :y, :z)
24
- assert matcher.matches?([[:x, :y, :z]])
25
- end
26
-
27
- def test_should_not_match_object_that_does_not_include_value
28
- matcher = includes(:not_included)
29
- assert !matcher.matches?([[:x, :y, :z]])
30
- end
31
-
32
- def test_should_not_match_object_that_does_not_include_any_one_value
33
- matcher = includes(:x, :y, :z, :not_included)
34
- assert !matcher.matches?([[:x, :y, :z]])
35
- end
36
-
37
- def test_should_describe_matcher_with_one_item
38
- matcher = includes(:x)
39
- assert_equal 'includes(:x)', matcher.mocha_inspect
40
- end
41
-
42
- def test_should_describe_matcher_with_multiple_items
43
- matcher = includes(:x, :y, :z)
44
- assert_equal 'includes(:x, :y, :z)', matcher.mocha_inspect
45
- end
46
-
47
- def test_should_not_raise_error_on_emtpy_arguments
48
- matcher = includes(:x)
49
- assert_nothing_raised { matcher.matches?([]) }
50
- end
51
-
52
- def test_should_not_match_on_empty_arguments
53
- matcher = includes(:x)
54
- assert !matcher.matches?([])
55
- end
56
-
57
- def test_should_not_raise_error_on_argument_that_does_not_respond_to_include
58
- matcher = includes(:x)
59
- assert_nothing_raised { matcher.matches?([:x]) }
60
- end
61
-
62
- def test_should_not_match_on_argument_that_does_not_respond_to_include
63
- matcher = includes(:x)
64
- assert !matcher.matches?([:x])
65
- end
66
-
67
- def test_should_match_object_including_value_which_matches_nested_matcher
68
- matcher = includes(has_key(:key))
69
- assert matcher.matches?([[:non_matching_element, { :key => 'value' }]])
70
- end
71
-
72
- def test_should_not_match_object_which_doesnt_include_value_that_matches_nested_matcher
73
- matcher = includes(has_key(:key))
74
- assert !matcher.matches?([[:non_matching_element, { :other_key => 'other-value' }]])
75
- end
76
-
77
- def test_should_match_string_argument_containing_substring
78
- matcher = includes('bar')
79
- assert matcher.matches?(['foobarbaz'])
80
- end
81
-
82
- def test_should_not_match_string_argument_without_substring
83
- matcher = includes('bar')
84
- assert !matcher.matches?(['foobaz'])
85
- end
86
-
87
- def test_should_match_hash_argument_containing_given_key
88
- matcher = includes(:key)
89
- assert matcher.matches?([{ :thing => 1, :key => 2 }])
90
- end
91
-
92
- def test_should_not_match_hash_argument_missing_given_key
93
- matcher = includes(:key)
94
- assert !matcher.matches?([{ :thing => 1, :other => :key }])
95
- end
96
-
97
- def test_should_match_hash_when_nested_matcher_matches_key
98
- matcher = includes(regexp_matches(/ar/))
99
- assert matcher.matches?([{ 'foo' => 1, 'bar' => 2 }])
100
- end
101
-
102
- def test_should_not_match_hash_when_nested_matcher_doesn_not_match_key
103
- matcher = includes(regexp_matches(/az/))
104
- assert !matcher.matches?([{ 'foo' => 1, 'bar' => 2 }])
105
- end
106
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/instance_of'
4
- require 'mocha/inspect'
5
-
6
- class InstanceOfTest < Mocha::TestCase
7
- include Mocha::ParameterMatchers
8
-
9
- def test_should_match_object_that_is_an_instance_of_specified_class
10
- matcher = instance_of(String)
11
- assert matcher.matches?(['string'])
12
- end
13
-
14
- def test_should_not_match_object_that_is_not_an_instance_of_specified_class
15
- matcher = instance_of(String)
16
- assert !matcher.matches?([99])
17
- end
18
-
19
- def test_should_describe_matcher
20
- matcher = instance_of(String)
21
- assert_equal 'instance_of(String)', matcher.mocha_inspect
22
- end
23
- end
@@ -1,23 +0,0 @@
1
- require File.expand_path('../../../test_helper', __FILE__)
2
-
3
- require 'mocha/parameter_matchers/is_a'
4
- require 'mocha/inspect'
5
-
6
- class IsATest < Mocha::TestCase
7
- include Mocha::ParameterMatchers
8
-
9
- def test_should_match_object_that_is_a_specified_class
10
- matcher = is_a(Integer)
11
- assert matcher.matches?([99])
12
- end
13
-
14
- def test_should_not_match_object_that_is_not_a_specified_class
15
- matcher = is_a(Integer)
16
- assert !matcher.matches?(['string'])
17
- end
18
-
19
- def test_should_describe_matcher
20
- matcher = is_a(Integer)
21
- assert_equal 'is_a(Integer)', matcher.mocha_inspect
22
- end
23
- end