mocha 1.4.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (230) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +58 -0
  3. data/.rubocop_todo.yml +50 -0
  4. data/README.md +12 -71
  5. data/RELEASE.md +19 -0
  6. data/Rakefile +35 -28
  7. data/bin/build-matrix +17 -18
  8. data/lib/mocha/any_instance_method.rb +19 -25
  9. data/lib/mocha/api.rb +1 -5
  10. data/lib/mocha/argument_iterator.rb +4 -8
  11. data/lib/mocha/backtrace_filter.rb +1 -5
  12. data/lib/mocha/cardinality.rb +20 -27
  13. data/lib/mocha/central.rb +21 -12
  14. data/lib/mocha/change_state_side_effect.rb +0 -4
  15. data/lib/mocha/class_method.rb +31 -37
  16. data/lib/mocha/class_methods.rb +11 -15
  17. data/lib/mocha/configuration.rb +69 -10
  18. data/lib/mocha/debug.rb +3 -2
  19. data/lib/mocha/deprecation.rb +4 -11
  20. data/lib/mocha/detection/mini_test.rb +0 -2
  21. data/lib/mocha/detection/test_unit.rb +4 -4
  22. data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
  23. data/lib/mocha/exception_raiser.rb +2 -5
  24. data/lib/mocha/expectation.rb +15 -18
  25. data/lib/mocha/expectation_error.rb +2 -0
  26. data/lib/mocha/expectation_error_factory.rb +0 -1
  27. data/lib/mocha/expectation_list.rb +2 -6
  28. data/lib/mocha/hooks.rb +1 -3
  29. data/lib/mocha/in_state_ordering_constraint.rb +0 -4
  30. data/lib/mocha/inspect.rb +3 -5
  31. data/lib/mocha/instance_method.rb +0 -2
  32. data/lib/mocha/integration/mini_test/adapter.rb +2 -4
  33. data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
  34. data/lib/mocha/integration/mini_test/nothing.rb +4 -4
  35. data/lib/mocha/integration/mini_test/version_13.rb +4 -1
  36. data/lib/mocha/integration/mini_test/version_140.rb +4 -1
  37. data/lib/mocha/integration/mini_test/version_141.rb +4 -1
  38. data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
  39. data/lib/mocha/integration/mini_test/version_200.rb +4 -1
  40. data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
  41. data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
  42. data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
  43. data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
  44. data/lib/mocha/integration/monkey_patcher.rb +5 -7
  45. data/lib/mocha/integration/test_unit/adapter.rb +5 -6
  46. data/lib/mocha/integration/test_unit/gem_version_200.rb +5 -2
  47. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
  48. data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
  49. data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
  50. data/lib/mocha/integration/test_unit/nothing.rb +4 -4
  51. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +4 -1
  52. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
  53. data/lib/mocha/integration.rb +3 -4
  54. data/lib/mocha/is_a.rb +0 -2
  55. data/lib/mocha/logger.rb +0 -4
  56. data/lib/mocha/method_matcher.rb +1 -5
  57. data/lib/mocha/minitest.rb +1 -1
  58. data/lib/mocha/mock.rb +25 -30
  59. data/lib/mocha/mockery.rb +62 -43
  60. data/lib/mocha/module_method.rb +0 -10
  61. data/lib/mocha/module_methods.rb +0 -4
  62. data/lib/mocha/multiple_yields.rb +0 -5
  63. data/lib/mocha/names.rb +1 -11
  64. data/lib/mocha/no_yields.rb +1 -7
  65. data/lib/mocha/not_initialized_error.rb +7 -0
  66. data/lib/mocha/object_methods.rb +16 -16
  67. data/lib/mocha/parameter_matchers/all_of.rb +1 -7
  68. data/lib/mocha/parameter_matchers/any_of.rb +1 -7
  69. data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
  70. data/lib/mocha/parameter_matchers/anything.rb +2 -8
  71. data/lib/mocha/parameter_matchers/base.rb +6 -12
  72. data/lib/mocha/parameter_matchers/equals.rb +0 -6
  73. data/lib/mocha/parameter_matchers/equivalent_uri.rb +6 -6
  74. data/lib/mocha/parameter_matchers/has_entries.rb +2 -6
  75. data/lib/mocha/parameter_matchers/has_entry.rb +8 -11
  76. data/lib/mocha/parameter_matchers/has_key.rb +2 -6
  77. data/lib/mocha/parameter_matchers/has_value.rb +2 -6
  78. data/lib/mocha/parameter_matchers/includes.rb +2 -6
  79. data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
  80. data/lib/mocha/parameter_matchers/is_a.rb +2 -6
  81. data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
  82. data/lib/mocha/parameter_matchers/not.rb +2 -6
  83. data/lib/mocha/parameter_matchers/object.rb +0 -2
  84. data/lib/mocha/parameter_matchers/optionally.rb +4 -10
  85. data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
  86. data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
  87. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
  88. data/lib/mocha/parameter_matchers.rb +0 -2
  89. data/lib/mocha/parameters_matcher.rb +6 -9
  90. data/lib/mocha/pretty_parameters.rb +0 -4
  91. data/lib/mocha/receivers.rb +10 -14
  92. data/lib/mocha/return_values.rb +3 -7
  93. data/lib/mocha/sequence.rb +4 -9
  94. data/lib/mocha/single_return_value.rb +0 -4
  95. data/lib/mocha/single_yield.rb +0 -5
  96. data/lib/mocha/state_machine.rb +6 -10
  97. data/lib/mocha/stubbing_error.rb +2 -13
  98. data/lib/mocha/test_unit.rb +1 -1
  99. data/lib/mocha/thrower.rb +2 -5
  100. data/lib/mocha/unexpected_invocation.rb +3 -5
  101. data/lib/mocha/version.rb +1 -1
  102. data/lib/mocha/yield_parameters.rb +3 -7
  103. data/mocha.gemspec +34 -58
  104. data/test/acceptance/acceptance_test_helper.rb +0 -6
  105. data/test/acceptance/bug_18914_test.rb +7 -12
  106. data/test/acceptance/bug_21465_test.rb +0 -2
  107. data/test/acceptance/bug_21563_test.rb +0 -2
  108. data/test/acceptance/exception_rescue_test.rb +7 -8
  109. data/test/acceptance/expectations_on_multiple_methods_test.rb +2 -1
  110. data/test/acceptance/expected_invocation_count_test.rb +27 -29
  111. data/test/acceptance/failure_messages_test.rb +3 -5
  112. data/test/acceptance/issue_272_test.rb +0 -1
  113. data/test/acceptance/issue_65_test.rb +15 -13
  114. data/test/acceptance/issue_70_test.rb +0 -1
  115. data/test/acceptance/mocha_example_test.rb +5 -6
  116. data/test/acceptance/mocha_test_result_test.rb +7 -7
  117. data/test/acceptance/mock_test.rb +2 -4
  118. data/test/acceptance/mock_with_initializer_block_test.rb +0 -2
  119. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -2
  120. data/test/acceptance/multiple_expectations_failure_message_test.rb +16 -17
  121. data/test/acceptance/optional_parameters_test.rb +0 -2
  122. data/test/acceptance/parameter_matcher_test.rb +2 -3
  123. data/test/acceptance/partial_mocks_test.rb +4 -6
  124. data/test/acceptance/prepend_test.rb +14 -16
  125. data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +77 -0
  126. data/test/acceptance/raise_exception_test.rb +2 -4
  127. data/test/acceptance/return_value_test.rb +0 -2
  128. data/test/acceptance/sequence_test.rb +9 -11
  129. data/test/acceptance/states_test.rb +6 -4
  130. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +33 -2
  131. data/test/acceptance/stub_any_instance_method_test.rb +19 -17
  132. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +8 -8
  133. data/test/acceptance/stub_class_method_defined_on_class_test.rb +2 -1
  134. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -1
  135. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +34 -1
  136. data/test/acceptance/stub_everything_test.rb +1 -3
  137. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +6 -7
  138. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -1
  139. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -1
  140. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +63 -1
  141. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -1
  142. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +2 -1
  143. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -2
  144. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -1
  145. data/test/acceptance/stub_module_method_test.rb +13 -13
  146. data/test/acceptance/stub_test.rb +1 -3
  147. data/test/acceptance/stubba_example_test.rb +6 -14
  148. data/test/acceptance/stubba_test_result_test.rb +5 -8
  149. data/test/acceptance/stubbing_error_backtrace_test.rb +2 -2
  150. data/test/acceptance/stubbing_frozen_object_test.rb +2 -1
  151. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +12 -7
  152. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -2
  153. data/test/acceptance/stubbing_nil_test.rb +4 -5
  154. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +1 -3
  155. data/test/acceptance/stubbing_non_existent_class_method_test.rb +3 -3
  156. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +1 -3
  157. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -2
  158. data/test/acceptance/stubbing_non_public_class_method_test.rb +3 -3
  159. data/test/acceptance/stubbing_non_public_instance_method_test.rb +1 -3
  160. data/test/acceptance/stubbing_on_non_mock_object_test.rb +4 -10
  161. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +3 -4
  162. data/test/acceptance/throw_test.rb +0 -2
  163. data/test/acceptance/unexpected_invocation_test.rb +2 -3
  164. data/test/acceptance/unstubbing_test.rb +41 -14
  165. data/test/deprecation_disabler.rb +0 -1
  166. data/test/execution_point.rb +2 -4
  167. data/test/integration/mini_test_test.rb +2 -2
  168. data/test/integration/shared_tests.rb +24 -22
  169. data/test/integration/test_unit_test.rb +2 -2
  170. data/test/method_definer.rb +1 -3
  171. data/test/mini_test_result.rb +17 -11
  172. data/test/minitest_result.rb +0 -1
  173. data/test/simple_counter.rb +0 -2
  174. data/test/test_helper.rb +13 -5
  175. data/test/test_runner.rb +2 -4
  176. data/test/test_unit_result.rb +4 -2
  177. data/test/unit/any_instance_method_test.rb +31 -17
  178. data/test/unit/array_inspect_test.rb +2 -4
  179. data/test/unit/backtrace_filter_test.rb +3 -5
  180. data/test/unit/cardinality_test.rb +0 -2
  181. data/test/unit/central_test.rb +26 -27
  182. data/test/unit/change_state_side_effect_test.rb +0 -4
  183. data/test/unit/class_method_test.rb +59 -34
  184. data/test/unit/class_methods_test.rb +34 -5
  185. data/test/unit/configuration_test.rb +1 -2
  186. data/test/unit/date_time_inspect_test.rb +1 -3
  187. data/test/unit/exception_raiser_test.rb +0 -2
  188. data/test/unit/expectation_list_test.rb +0 -2
  189. data/test/unit/expectation_test.rb +41 -46
  190. data/test/unit/hash_inspect_test.rb +3 -5
  191. data/test/unit/hooks_test.rb +14 -8
  192. data/test/unit/in_state_ordering_constraint_test.rb +0 -4
  193. data/test/unit/method_matcher_test.rb +1 -3
  194. data/test/unit/mock_test.rb +35 -22
  195. data/test/unit/mockery_test.rb +45 -28
  196. data/test/unit/module_methods_test.rb +0 -2
  197. data/test/unit/multiple_yields_test.rb +0 -2
  198. data/test/unit/no_yields_test.rb +0 -2
  199. data/test/unit/object_inspect_test.rb +16 -7
  200. data/test/unit/object_methods_test.rb +22 -6
  201. data/test/unit/parameter_matchers/all_of_test.rb +0 -2
  202. data/test/unit/parameter_matchers/any_of_test.rb +0 -2
  203. data/test/unit/parameter_matchers/anything_test.rb +2 -4
  204. data/test/unit/parameter_matchers/equals_test.rb +1 -3
  205. data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -1
  206. data/test/unit/parameter_matchers/has_entries_test.rb +2 -2
  207. data/test/unit/parameter_matchers/has_entry_test.rb +13 -14
  208. data/test/unit/parameter_matchers/has_key_test.rb +0 -1
  209. data/test/unit/parameter_matchers/has_value_test.rb +0 -2
  210. data/test/unit/parameter_matchers/includes_test.rb +8 -9
  211. data/test/unit/parameter_matchers/instance_of_test.rb +1 -3
  212. data/test/unit/parameter_matchers/is_a_test.rb +1 -3
  213. data/test/unit/parameter_matchers/kind_of_test.rb +1 -3
  214. data/test/unit/parameter_matchers/not_test.rb +0 -2
  215. data/test/unit/parameter_matchers/regexp_matches_test.rb +1 -2
  216. data/test/unit/parameter_matchers/responds_with_test.rb +9 -3
  217. data/test/unit/parameter_matchers/stub_matcher.rb +0 -4
  218. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +1 -3
  219. data/test/unit/parameters_matcher_test.rb +2 -4
  220. data/test/unit/receivers_test.rb +35 -5
  221. data/test/unit/return_values_test.rb +3 -5
  222. data/test/unit/sequence_test.rb +1 -5
  223. data/test/unit/single_return_value_test.rb +0 -2
  224. data/test/unit/single_yield_test.rb +0 -2
  225. data/test/unit/state_machine_test.rb +1 -3
  226. data/test/unit/string_inspect_test.rb +2 -4
  227. data/test/unit/thrower_test.rb +0 -2
  228. data/test/unit/yield_parameters_test.rb +0 -2
  229. data/yard-templates/default/layout/html/setup.rb +2 -3
  230. metadata +25 -6
@@ -5,36 +5,50 @@ require 'mocha/expectation_error_factory'
5
5
  require 'deprecation_disabler'
6
6
 
7
7
  class MockeryTest < Mocha::TestCase
8
-
9
8
  include Mocha
10
9
  include DeprecationDisabler
11
10
 
12
- def test_should_build_instance_of_mockery
11
+ def setup
12
+ Mockery.setup
13
+ end
14
+
15
+ def teardown
16
+ Mockery.teardown
17
+ end
18
+
19
+ def test_should_return_null_mockery_if_not_setup
20
+ Mockery.teardown
21
+ mockery = Mockery.instance
22
+ assert_not_nil mockery
23
+ assert_kind_of Mockery::Null, mockery
24
+ end
25
+
26
+ def test_should_return_instance_of_mockery
13
27
  mockery = Mockery.instance
14
28
  assert_not_nil mockery
15
29
  assert_kind_of Mockery, mockery
16
30
  end
17
31
 
18
32
  def test_should_cache_instance_of_mockery
19
- mockery_1 = Mockery.instance
20
- mockery_2 = Mockery.instance
21
- assert_same mockery_1, mockery_2
33
+ mockery1 = Mockery.instance
34
+ mockery2 = Mockery.instance
35
+ assert_same mockery1, mockery2
22
36
  end
23
37
 
24
38
  def test_should_expire_mockery_instance_cache
25
- mockery_1 = Mockery.instance
26
- Mockery.reset_instance
27
- mockery_2 = Mockery.instance
28
- assert_not_same mockery_1, mockery_2
39
+ mockery1 = Mockery.instance
40
+ Mockery.teardown
41
+ mockery2 = Mockery.instance
42
+ assert_not_same mockery1, mockery2
29
43
  end
30
44
 
31
45
  def test_should_raise_expectation_error_because_not_all_expectations_are_satisfied
32
46
  mockery = Mockery.new
33
47
  disable_deprecations do
34
- mock_1 = mockery.named_mock('mock-1') { expects(:method_1) }
35
- mock_2 = mockery.named_mock('mock-2') { expects(:method_2) }
36
- 1.times { mock_1.method_1 }
37
- 0.times { mock_2.method_2 }
48
+ mock1 = mockery.named_mock('mock-1') { expects(:method_1) }
49
+ mock2 = mockery.named_mock('mock-2') { expects(:method_2) }
50
+ 1.times { mock1.method_1 }
51
+ 0.times { mock2.method_2 }
38
52
  end
39
53
  assert_raises(ExpectationErrorFactory.exception_class) { mockery.verify }
40
54
  end
@@ -56,10 +70,10 @@ class MockeryTest < Mocha::TestCase
56
70
 
57
71
  def test_should_build_new_instance_of_stubba_on_teardown
58
72
  mockery = Mockery.new
59
- stubba_1 = mockery.stubba
73
+ stubba1 = mockery.stubba
60
74
  mockery.teardown
61
- stubba_2 = mockery.stubba
62
- assert_not_same stubba_1, stubba_2
75
+ stubba2 = mockery.stubba
76
+ assert_not_same stubba1, stubba2
63
77
  end
64
78
 
65
79
  def test_should_build_and_store_new_state_machine
@@ -78,8 +92,12 @@ class MockeryTest < Mocha::TestCase
78
92
 
79
93
  class FakeMethod
80
94
  def stub; end
95
+
81
96
  def unstub; end
82
- def matches?(other); true; end
97
+
98
+ def matches?(_other)
99
+ true
100
+ end
83
101
  end
84
102
 
85
103
  def test_should_unstub_all_methods_on_teardown
@@ -93,51 +111,51 @@ class MockeryTest < Mocha::TestCase
93
111
  def test_should_display_object_id_for_mocha_inspect_if_mock_has_no_name
94
112
  mockery = Mockery.new
95
113
  mock = mockery.unnamed_mock
96
- assert_match Regexp.new("^#<Mock:0x[0-9A-Fa-f]{1,12}>$"), mock.mocha_inspect
114
+ assert_match Regexp.new('^#<Mock:0x[0-9A-Fa-f]{1,12}>$'), mock.mocha_inspect
97
115
  end
98
116
 
99
117
  def test_should_display_object_id_for_inspect_if_mock_has_no_name
100
118
  mockery = Mockery.new
101
119
  mock = mockery.unnamed_mock
102
- assert_match Regexp.new("^#<Mock:0x[0-9A-Fa-f]{1,12}>$"), mock.inspect
120
+ assert_match Regexp.new('^#<Mock:0x[0-9A-Fa-f]{1,12}>$'), mock.inspect
103
121
  end
104
122
 
105
123
  def test_should_display_name_for_mocha_inspect_if_mock_has_string_name
106
124
  mockery = Mockery.new
107
125
  mock = mockery.named_mock('named_mock')
108
- assert_equal "#<Mock:named_mock>", mock.mocha_inspect
126
+ assert_equal '#<Mock:named_mock>', mock.mocha_inspect
109
127
  end
110
128
 
111
129
  def test_should_display_name_for_mocha_inspect_if_mock_has_symbol_name
112
130
  mockery = Mockery.new
113
131
  mock = mockery.named_mock(:named_mock)
114
- assert_equal "#<Mock:named_mock>", mock.mocha_inspect
132
+ assert_equal '#<Mock:named_mock>', mock.mocha_inspect
115
133
  end
116
134
 
117
135
  def test_should_display_name_for_inspect_if_mock_has_string_name
118
136
  mockery = Mockery.new
119
137
  mock = mockery.named_mock('named_mock')
120
- assert_equal "#<Mock:named_mock>", mock.inspect
138
+ assert_equal '#<Mock:named_mock>', mock.inspect
121
139
  end
122
140
 
123
141
  def test_should_display_name_for_inspect_if_mock_has_symbol_name
124
142
  mockery = Mockery.new
125
143
  mock = mockery.named_mock(:named_mock)
126
- assert_equal "#<Mock:named_mock>", mock.inspect
144
+ assert_equal '#<Mock:named_mock>', mock.inspect
127
145
  end
128
146
 
129
147
  def test_should_display_impersonated_object_for_mocha_inspect
130
148
  mockery = Mockery.new
131
149
  instance = Object.new
132
150
  mock = mockery.mock_impersonating(instance)
133
- assert_equal "#{instance.mocha_inspect}", mock.mocha_inspect
151
+ assert_equal instance.mocha_inspect.to_s, mock.mocha_inspect
134
152
  end
135
153
 
136
154
  def test_should_display_impersonated_object_for_inspect
137
155
  mockery = Mockery.new
138
156
  instance = Object.new
139
157
  mock = mockery.mock_impersonating(instance)
140
- assert_equal "#{instance.mocha_inspect}", mock.inspect
158
+ assert_equal instance.mocha_inspect.to_s, mock.inspect
141
159
  end
142
160
 
143
161
  class FakeClass; end
@@ -145,13 +163,12 @@ class MockeryTest < Mocha::TestCase
145
163
  def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_mocha_inspect
146
164
  mockery = Mockery.new
147
165
  mock = mockery.mock_impersonating_any_instance_of(FakeClass)
148
- assert_equal "#<AnyInstance:MockeryTest::FakeClass>", mock.mocha_inspect
166
+ assert_equal '#<AnyInstance:MockeryTest::FakeClass>', mock.mocha_inspect
149
167
  end
150
168
 
151
169
  def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_inspect
152
170
  mockery = Mockery.new
153
171
  mock = mockery.mock_impersonating_any_instance_of(FakeClass)
154
- assert_equal "#<AnyInstance:MockeryTest::FakeClass>", mock.inspect
172
+ assert_equal '#<AnyInstance:MockeryTest::FakeClass>', mock.inspect
155
173
  end
156
-
157
174
  end
@@ -3,7 +3,6 @@ require 'mocha/module_methods'
3
3
  require 'mocha/object_methods'
4
4
 
5
5
  class ModuleMethodsTest < Mocha::TestCase
6
-
7
6
  def setup
8
7
  @module = Module.new.extend(Mocha::ModuleMethods, Mocha::ObjectMethods)
9
8
  end
@@ -15,5 +14,4 @@ class ModuleMethodsTest < Mocha::TestCase
15
14
  def test_should_stub_self_for_module
16
15
  assert_equal @module, @module.stubba_object
17
16
  end
18
-
19
17
  end
@@ -3,7 +3,6 @@ require File.expand_path('../../test_helper', __FILE__)
3
3
  require 'mocha/multiple_yields'
4
4
 
5
5
  class MultipleYieldsTest < Mocha::TestCase
6
-
7
6
  include Mocha
8
7
 
9
8
  def test_should_provide_parameters_for_multiple_yields_in_single_invocation
@@ -14,5 +13,4 @@ class MultipleYieldsTest < Mocha::TestCase
14
13
  end
15
14
  assert_equal [[1, 2, 3], [4, 5]], parameter_groups
16
15
  end
17
-
18
16
  end
@@ -3,7 +3,6 @@ require File.expand_path('../../test_helper', __FILE__)
3
3
  require 'mocha/no_yields'
4
4
 
5
5
  class NoYieldsTest < Mocha::TestCase
6
-
7
6
  include Mocha
8
7
 
9
8
  def test_should_provide_parameters_for_no_yields_in_single_invocation
@@ -14,5 +13,4 @@ class NoYieldsTest < Mocha::TestCase
14
13
  end
15
14
  assert_equal [], parameter_groups
16
15
  end
17
-
18
16
  end
@@ -4,14 +4,13 @@ require 'mocha/inspect'
4
4
  require 'method_definer'
5
5
 
6
6
  class ObjectInspectTest < Mocha::TestCase
7
-
8
7
  def test_should_return_default_string_representation_of_object_not_including_instance_variables
9
8
  object = Object.new
10
9
  class << object
11
10
  attr_accessor :attribute
12
11
  end
13
12
  object.attribute = 'instance_variable'
14
- assert_match Regexp.new("^#<Object:0x[0-9A-Fa-f]{1,8}.*>$"), object.mocha_inspect
13
+ assert_match Regexp.new('^#<Object:0x[0-9A-Fa-f]{1,8}.*>$'), object.mocha_inspect
15
14
  assert_no_match(/instance_variable/, object.mocha_inspect)
16
15
  end
17
16
 
@@ -26,14 +25,24 @@ class ObjectInspectTest < Mocha::TestCase
26
25
  def test_should_use_underscored_id_instead_of_object_id_or_id_so_that_they_can_be_stubbed
27
26
  calls = []
28
27
  object = Object.new
29
- object.replace_instance_method(:id) { calls << :id; return 1 } if Mocha::PRE_RUBY_V19
30
- object.replace_instance_method(:object_id) { calls << :object_id; return 1 }
31
- object.replace_instance_method(:__id__) { calls << :__id__; return 1 }
32
- object.replace_instance_method(:inspect) { "object-description" }
28
+ if Mocha::PRE_RUBY_V19
29
+ object.replace_instance_method(:id) do
30
+ calls << :id
31
+ return 1
32
+ end
33
+ end
34
+ object.replace_instance_method(:object_id) do
35
+ calls << :object_id
36
+ return 1
37
+ end
38
+ object.replace_instance_method(:__id__) do
39
+ calls << :__id__
40
+ return 1
41
+ end
42
+ object.replace_instance_method(:inspect) { 'object-description' }
33
43
 
34
44
  object.mocha_inspect
35
45
 
36
46
  assert_equal [:__id__], calls.uniq
37
47
  end
38
-
39
48
  end
@@ -1,25 +1,42 @@
1
1
  require File.expand_path('../../test_helper', __FILE__)
2
2
  require 'mocha/object_methods'
3
+ require 'mocha/mockery'
3
4
  require 'mocha/mock'
4
5
  require 'mocha/expectation_error_factory'
6
+ require 'mocha/names'
5
7
 
6
8
  class ObjectMethodsTest < Mocha::TestCase
7
-
8
9
  def setup
10
+ Mocha::Mockery.setup
9
11
  @object = Object.new.extend(Mocha::ObjectMethods)
10
12
  end
11
13
 
14
+ def teardown
15
+ Mocha::Mockery.teardown
16
+ end
17
+
12
18
  def test_should_build_mocha_referring_to_self
13
19
  mocha = @object.mocha
14
20
  assert_not_nil mocha
15
21
  assert mocha.is_a?(Mocha::Mock)
16
- assert_equal @object.mocha_inspect, mocha.mocha_inspect
22
+ expected_name = Mocha::ImpersonatingName.new(@object).mocha_inspect
23
+ assert_equal expected_name, mocha.mocha_inspect
24
+ end
25
+
26
+ def test_should_not_build_mocha_if_instantiate_is_false
27
+ assert_nil @object.mocha(false)
17
28
  end
18
29
 
19
30
  def test_should_reuse_existing_mocha
20
- mocha_1 = @object.mocha
21
- mocha_2 = @object.mocha
22
- assert_equal mocha_1, mocha_2
31
+ mocha1 = @object.mocha
32
+ mocha2 = @object.mocha
33
+ assert_equal mocha1, mocha2
34
+ end
35
+
36
+ def test_should_reuse_existing_mocha_even_if_instantiate_is_false
37
+ mocha1 = @object.mocha
38
+ mocha2 = @object.mocha(false)
39
+ assert_equal mocha1, mocha2
23
40
  end
24
41
 
25
42
  def test_should_reset_mocha
@@ -42,5 +59,4 @@ class ObjectMethodsTest < Mocha::TestCase
42
59
  klass = Class.new { def self.method_x; end }
43
60
  assert_equal klass._method(:method_x), klass.method(:method_x)
44
61
  end
45
-
46
62
  end
@@ -5,7 +5,6 @@ require 'mocha/inspect'
5
5
  require 'stub_matcher'
6
6
 
7
7
  class AllOfTest < Mocha::TestCase
8
-
9
8
  include Mocha::ParameterMatchers
10
9
 
11
10
  def test_should_match_if_all_matchers_match
@@ -22,5 +21,4 @@ class AllOfTest < Mocha::TestCase
22
21
  matcher = all_of(Stub::Matcher.new(true), Stub::Matcher.new(false), Stub::Matcher.new(true))
23
22
  assert_equal 'all_of(matcher(true), matcher(false), matcher(true))', matcher.mocha_inspect
24
23
  end
25
-
26
24
  end
@@ -5,7 +5,6 @@ require 'mocha/inspect'
5
5
  require 'stub_matcher'
6
6
 
7
7
  class AnyOfTest < Mocha::TestCase
8
-
9
8
  include Mocha::ParameterMatchers
10
9
 
11
10
  def test_should_match_if_any_matchers_match
@@ -22,5 +21,4 @@ class AnyOfTest < Mocha::TestCase
22
21
  matcher = any_of(Stub::Matcher.new(false), Stub::Matcher.new(true), Stub::Matcher.new(false))
23
22
  assert_equal 'any_of(matcher(false), matcher(true), matcher(false))', matcher.mocha_inspect
24
23
  end
25
-
26
24
  end
@@ -4,18 +4,16 @@ require 'mocha/parameter_matchers/anything'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class AnythingTest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_anything
11
10
  matcher = anything
12
11
  assert matcher.matches?([:something])
13
- assert matcher.matches?([{'x' => 'y'}])
12
+ assert matcher.matches?([{ 'x' => 'y' }])
14
13
  end
15
14
 
16
15
  def test_should_describe_matcher
17
16
  matcher = anything
18
- assert_equal "anything", matcher.mocha_inspect
17
+ assert_equal 'anything', matcher.mocha_inspect
19
18
  end
20
-
21
19
  end
@@ -4,7 +4,6 @@ require 'mocha/parameter_matchers/equals'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class EqualsTest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_object_that_equals_value
@@ -19,7 +18,6 @@ class EqualsTest < Mocha::TestCase
19
18
 
20
19
  def test_should_describe_matcher
21
20
  matcher = equals('x')
22
- assert_equal %{"x"}, matcher.mocha_inspect
21
+ assert_equal %("x"), matcher.mocha_inspect
23
22
  end
24
-
25
23
  end
@@ -3,7 +3,6 @@ require 'deprecation_disabler'
3
3
  require 'mocha/parameter_matchers/equivalent_uri'
4
4
 
5
5
  class EquivalentUriMatchesTest < Mocha::TestCase
6
-
7
6
  include Mocha::ParameterMatchers
8
7
  include DeprecationDisabler
9
8
 
@@ -5,7 +5,6 @@ require 'mocha/parameter_matchers/object'
5
5
  require 'mocha/inspect'
6
6
 
7
7
  class HasEntriesTest < Mocha::TestCase
8
-
9
8
  include Mocha::ParameterMatchers
10
9
 
11
10
  def test_should_match_hash_including_specified_entries
@@ -23,7 +22,9 @@ class HasEntriesTest < Mocha::TestCase
23
22
  description = matcher.mocha_inspect
24
23
  matches = /has_entries\((.*)\)/.match(description)
25
24
  assert_not_nil matches[0]
25
+ # rubocop:disable Security/Eval
26
26
  entries = eval(matches[1], binding, __FILE__, __LINE__)
27
+ # rubocop:enable Security/Eval
27
28
  assert_equal 'value_1', entries[:key_1]
28
29
  assert_equal 'value_2', entries[:key_2]
29
30
  end
@@ -47,5 +48,4 @@ class HasEntriesTest < Mocha::TestCase
47
48
  matcher = has_entries(:key_1 => equals('value_2'), :key_2 => equals('value_2'), :key_3 => equals('value_3'))
48
49
  assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
49
50
  end
50
-
51
51
  end
@@ -6,7 +6,6 @@ require 'mocha/parameter_matchers/equals'
6
6
  require 'mocha/inspect'
7
7
 
8
8
  class HasEntryTest < Mocha::TestCase
9
-
10
9
  include Mocha::ParameterMatchers
11
10
 
12
11
  def test_should_match_hash_including_specified_key_value_pair
@@ -62,7 +61,7 @@ class HasEntryTest < Mocha::TestCase
62
61
  def test_should_not_match_object_that_doesnt_respond_to_keys
63
62
  matcher = has_entry(:key_1 => equals('value_2'))
64
63
  object = Class.new do
65
- def [](key)
64
+ def [](_key)
66
65
  'value_2'
67
66
  end
68
67
  end.new
@@ -81,49 +80,49 @@ class HasEntryTest < Mocha::TestCase
81
80
 
82
81
  def test_should_raise_argument_error_if_single_argument_is_not_a_hash
83
82
  e = assert_raises(ArgumentError) do
84
- has_entry(Array.new)
83
+ has_entry([])
85
84
  end
86
- assert_equal "Argument is not a Hash.", e.message
85
+ assert_equal 'Argument is not a Hash.', e.message
87
86
  end
88
87
 
89
88
  def test_should_raise_argument_error_if_no_entries_are_supplied
90
89
  e = assert_raises(ArgumentError) do
91
90
  has_entry({})
92
91
  end
93
- assert_equal "Argument has no entries.", e.message
92
+ assert_equal 'Argument has no entries.', e.message
94
93
  end
95
94
 
96
95
  def test_should_raise_argument_error_if_multiple_entries_are_supplied
97
96
  e = assert_raises(ArgumentError) do
98
97
  has_entry(:key_1 => 'value_1', :key_2 => 'value_2')
99
98
  end
100
- assert_equal "Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.", e.message
99
+ assert_equal 'Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.', e.message
101
100
  end
102
101
 
103
102
  def test_should_raise_argument_error_if_more_than_two_arguments_are_supplied
104
103
  e = assert_raises(ArgumentError) do
105
104
  has_entry(1, 2, 3)
106
105
  end
107
- assert_equal "Too many arguments; use either a single argument (must be a Hash) or two arguments (a key and a value).", e.message
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
108
107
  end
109
108
 
110
109
  def test_should_match_array_as_key
111
110
  matcher = has_entry([:key_1, :key_2] => 'value_1')
112
- assert matcher.matches?([{[:key_1, :key_2] => 'value_1', :key_3 => 'value_2'}])
111
+ assert matcher.matches?([{ [:key_1, :key_2] => 'value_1', :key_3 => 'value_2' }])
113
112
  end
114
113
 
115
114
  def test_should_match_array_as_value
116
- matcher = has_entry(:key_1 => ['value_1', 'value_2'])
117
- assert matcher.matches?([{:key_1 => ['value_1', 'value_2']}])
115
+ matcher = has_entry(:key_1 => %w[value_1 value_2])
116
+ assert matcher.matches?([{ :key_1 => %w[value_1 value_2] }])
118
117
  end
119
118
 
120
119
  def test_should_match_hash_as_value_and_key
121
- matcher = has_entry({{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}})
122
- assert matcher.matches?([{{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}, :key_5 => 'value_5'}])
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' }])
123
122
  end
124
123
 
125
124
  def test_should_match_matcher_as_value_and_key
126
- matcher = has_entry({has_entry(:key_1 => 'value_1') => has_entry(:key_3 => 'value_3')})
127
- assert matcher.matches?([{{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}, :key_5 => 'value_5'}])
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' }])
128
127
  end
129
128
  end
@@ -5,7 +5,6 @@ require 'mocha/parameter_matchers/object'
5
5
  require 'mocha/inspect'
6
6
 
7
7
  class HasKeyTest < Mocha::TestCase
8
-
9
8
  include Mocha::ParameterMatchers
10
9
 
11
10
  def test_should_match_hash_including_specified_key
@@ -6,7 +6,6 @@ require 'mocha/parameter_matchers/equals'
6
6
  require 'mocha/inspect'
7
7
 
8
8
  class HasValueTest < Mocha::TestCase
9
-
10
9
  include Mocha::ParameterMatchers
11
10
 
12
11
  def test_should_match_hash_including_specified_value
@@ -53,5 +52,4 @@ class HasValueTest < Mocha::TestCase
53
52
  matcher = has_value('value_1')
54
53
  assert !matcher.matches?(['value_1'])
55
54
  end
56
-
57
55
  end
@@ -7,7 +7,6 @@ require 'mocha/parameter_matchers/regexp_matches'
7
7
  require 'mocha/inspect'
8
8
 
9
9
  class IncludesTest < Mocha::TestCase
10
-
11
10
  include Mocha::ParameterMatchers
12
11
 
13
12
  def test_should_match_object_including_value
@@ -37,12 +36,12 @@ class IncludesTest < Mocha::TestCase
37
36
 
38
37
  def test_should_describe_matcher_with_one_item
39
38
  matcher = includes(:x)
40
- assert_equal "includes(:x)", matcher.mocha_inspect
39
+ assert_equal 'includes(:x)', matcher.mocha_inspect
41
40
  end
42
41
 
43
42
  def test_should_describe_matcher_with_multiple_items
44
43
  matcher = includes(:x, :y, :z)
45
- assert_equal "includes(:x, :y, :z)", matcher.mocha_inspect
44
+ assert_equal 'includes(:x, :y, :z)', matcher.mocha_inspect
46
45
  end
47
46
 
48
47
  def test_should_not_raise_error_on_emtpy_arguments
@@ -67,12 +66,12 @@ class IncludesTest < Mocha::TestCase
67
66
 
68
67
  def test_should_match_object_including_value_which_matches_nested_matcher
69
68
  matcher = includes(has_key(:key))
70
- assert matcher.matches?([[:non_matching_element, {:key => 'value'}]])
69
+ assert matcher.matches?([[:non_matching_element, { :key => 'value' }]])
71
70
  end
72
71
 
73
72
  def test_should_not_match_object_which_doesnt_include_value_that_matches_nested_matcher
74
73
  matcher = includes(has_key(:key))
75
- assert !matcher.matches?([[:non_matching_element, {:other_key => 'other-value'}]])
74
+ assert !matcher.matches?([[:non_matching_element, { :other_key => 'other-value' }]])
76
75
  end
77
76
 
78
77
  def test_should_match_string_argument_containing_substring
@@ -87,21 +86,21 @@ class IncludesTest < Mocha::TestCase
87
86
 
88
87
  def test_should_match_hash_argument_containing_given_key
89
88
  matcher = includes(:key)
90
- assert matcher.matches?([{:thing => 1, :key => 2}])
89
+ assert matcher.matches?([{ :thing => 1, :key => 2 }])
91
90
  end
92
91
 
93
92
  def test_should_not_match_hash_argument_missing_given_key
94
93
  matcher = includes(:key)
95
- assert !matcher.matches?([{:thing => 1, :other => :key}])
94
+ assert !matcher.matches?([{ :thing => 1, :other => :key }])
96
95
  end
97
96
 
98
97
  def test_should_match_hash_when_nested_matcher_matches_key
99
98
  matcher = includes(regexp_matches(/ar/))
100
- assert matcher.matches?([{'foo' => 1, 'bar' => 2}])
99
+ assert matcher.matches?([{ 'foo' => 1, 'bar' => 2 }])
101
100
  end
102
101
 
103
102
  def test_should_not_match_hash_when_nested_matcher_doesn_not_match_key
104
103
  matcher = includes(regexp_matches(/az/))
105
- assert !matcher.matches?([{'foo' => 1, 'bar' => 2}])
104
+ assert !matcher.matches?([{ 'foo' => 1, 'bar' => 2 }])
106
105
  end
107
106
  end
@@ -4,7 +4,6 @@ require 'mocha/parameter_matchers/instance_of'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class InstanceOfTest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_object_that_is_an_instance_of_specified_class
@@ -19,7 +18,6 @@ class InstanceOfTest < Mocha::TestCase
19
18
 
20
19
  def test_should_describe_matcher
21
20
  matcher = instance_of(String)
22
- assert_equal "instance_of(String)", matcher.mocha_inspect
21
+ assert_equal 'instance_of(String)', matcher.mocha_inspect
23
22
  end
24
-
25
23
  end
@@ -4,7 +4,6 @@ require 'mocha/parameter_matchers/is_a'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class IsATest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_object_that_is_a_specified_class
@@ -19,7 +18,6 @@ class IsATest < Mocha::TestCase
19
18
 
20
19
  def test_should_describe_matcher
21
20
  matcher = is_a(Integer)
22
- assert_equal "is_a(Integer)", matcher.mocha_inspect
21
+ assert_equal 'is_a(Integer)', matcher.mocha_inspect
23
22
  end
24
-
25
23
  end
@@ -4,7 +4,6 @@ require 'mocha/parameter_matchers/kind_of'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class KindOfTest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_object_that_is_a_kind_of_specified_class
@@ -19,7 +18,6 @@ class KindOfTest < Mocha::TestCase
19
18
 
20
19
  def test_should_describe_matcher
21
20
  matcher = kind_of(Integer)
22
- assert_equal "kind_of(Integer)", matcher.mocha_inspect
21
+ assert_equal 'kind_of(Integer)', matcher.mocha_inspect
23
22
  end
24
-
25
23
  end
@@ -5,7 +5,6 @@ require 'mocha/inspect'
5
5
  require 'stub_matcher'
6
6
 
7
7
  class NotTest < Mocha::TestCase
8
-
9
8
  include Mocha::ParameterMatchers
10
9
 
11
10
  def test_should_match_if_matcher_does_not_match
@@ -22,5 +21,4 @@ class NotTest < Mocha::TestCase
22
21
  matcher = Not(Stub::Matcher.new(true))
23
22
  assert_equal 'Not(matcher(true))', matcher.mocha_inspect
24
23
  end
25
-
26
24
  end
@@ -4,7 +4,6 @@ require 'mocha/parameter_matchers/regexp_matches'
4
4
  require 'mocha/inspect'
5
5
 
6
6
  class RegexpMatchesTest < Mocha::TestCase
7
-
8
7
  include Mocha::ParameterMatchers
9
8
 
10
9
  def test_should_match_parameter_matching_regular_expression
@@ -19,7 +18,7 @@ class RegexpMatchesTest < Mocha::TestCase
19
18
 
20
19
  def test_should_describe_matcher
21
20
  matcher = regexp_matches(/oo/)
22
- assert_equal "regexp_matches(/oo/)", matcher.mocha_inspect
21
+ assert_equal 'regexp_matches(/oo/)', matcher.mocha_inspect
23
22
  end
24
23
 
25
24
  def test_should_not_raise_error_on_empty_arguments