mocha 1.2.1 → 2.0.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 (266) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +65 -0
  4. data/.rubocop_todo.yml +27 -0
  5. data/.yardopts +1 -0
  6. data/CONTRIBUTING.md +4 -9
  7. data/Gemfile +29 -0
  8. data/README.md +110 -106
  9. data/RELEASE.md +306 -1
  10. data/Rakefile +52 -45
  11. data/gemfiles/Gemfile.minitest.latest +1 -0
  12. data/gemfiles/Gemfile.test-unit.latest +2 -5
  13. data/lib/mocha/any_instance_method.rb +9 -62
  14. data/lib/mocha/api.rb +84 -68
  15. data/lib/mocha/argument_iterator.rb +4 -8
  16. data/lib/mocha/backtrace_filter.rb +1 -5
  17. data/lib/mocha/block_matcher.rb +31 -0
  18. data/lib/mocha/cardinality.rb +60 -49
  19. data/lib/mocha/central.rb +21 -12
  20. data/lib/mocha/change_state_side_effect.rb +0 -4
  21. data/lib/mocha/class_methods.rb +19 -21
  22. data/lib/mocha/configuration.rb +312 -47
  23. data/lib/mocha/debug.rb +3 -2
  24. data/lib/mocha/deprecation.rb +8 -11
  25. data/lib/mocha/detection/mini_test.rb +0 -2
  26. data/lib/mocha/detection/test_unit.rb +3 -5
  27. data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
  28. data/lib/mocha/exception_raiser.rb +4 -6
  29. data/lib/mocha/expectation.rb +186 -95
  30. data/lib/mocha/expectation_error.rb +1 -1
  31. data/lib/mocha/expectation_error_factory.rb +0 -1
  32. data/lib/mocha/expectation_list.rb +7 -11
  33. data/lib/mocha/hooks.rb +1 -3
  34. data/lib/mocha/in_state_ordering_constraint.rb +0 -4
  35. data/lib/mocha/inspect.rb +30 -38
  36. data/lib/mocha/instance_method.rb +11 -8
  37. data/lib/mocha/integration/mini_test/adapter.rb +2 -4
  38. data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
  39. data/lib/mocha/integration/mini_test.rb +10 -31
  40. data/lib/mocha/integration/monkey_patcher.rb +5 -7
  41. data/lib/mocha/integration/test_unit/adapter.rb +5 -6
  42. data/lib/mocha/integration/test_unit.rb +10 -26
  43. data/lib/mocha/invocation.rb +73 -0
  44. data/lib/mocha/is_a.rb +0 -2
  45. data/lib/mocha/logger.rb +0 -4
  46. data/lib/mocha/macos_version.rb +5 -0
  47. data/lib/mocha/method_matcher.rb +1 -5
  48. data/lib/mocha/minitest.rb +6 -0
  49. data/lib/mocha/mock.rb +99 -51
  50. data/lib/mocha/mockery.rb +70 -99
  51. data/lib/mocha/names.rb +2 -12
  52. data/lib/mocha/not_initialized_error.rb +7 -0
  53. data/lib/mocha/object_methods.rb +25 -31
  54. data/lib/mocha/parameter_matchers/all_of.rb +2 -8
  55. data/lib/mocha/parameter_matchers/any_of.rb +2 -8
  56. data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
  57. data/lib/mocha/parameter_matchers/anything.rb +2 -8
  58. data/lib/mocha/parameter_matchers/base.rb +7 -13
  59. data/lib/mocha/parameter_matchers/equals.rb +0 -6
  60. data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +14 -15
  61. data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
  62. data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
  63. data/lib/mocha/parameter_matchers/has_key.rb +2 -7
  64. data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
  65. data/lib/mocha/parameter_matchers/has_value.rb +2 -7
  66. data/lib/mocha/parameter_matchers/includes.rb +6 -7
  67. data/lib/mocha/parameter_matchers/instance_methods.rb +27 -0
  68. data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
  69. data/lib/mocha/parameter_matchers/is_a.rb +2 -7
  70. data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
  71. data/lib/mocha/parameter_matchers/not.rb +2 -7
  72. data/lib/mocha/parameter_matchers/optionally.rb +4 -10
  73. data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +64 -0
  74. data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
  75. data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
  76. data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
  77. data/lib/mocha/parameter_matchers.rb +3 -4
  78. data/lib/mocha/parameters_matcher.rb +8 -11
  79. data/lib/mocha/raised_exception.rb +11 -0
  80. data/lib/mocha/receivers.rb +10 -14
  81. data/lib/mocha/return_values.rb +4 -8
  82. data/lib/mocha/ruby_version.rb +1 -2
  83. data/lib/mocha/sequence.rb +4 -9
  84. data/lib/mocha/single_return_value.rb +2 -5
  85. data/lib/mocha/state_machine.rb +33 -46
  86. data/lib/mocha/stubbed_method.rb +88 -0
  87. data/lib/mocha/stubbing_error.rb +2 -13
  88. data/lib/mocha/test_unit.rb +5 -2
  89. data/lib/mocha/thrower.rb +4 -6
  90. data/lib/mocha/thrown_object.rb +12 -0
  91. data/lib/mocha/version.rb +1 -1
  92. data/lib/mocha/yield_parameters.rb +7 -17
  93. data/mocha.gemspec +14 -65
  94. data/yard-templates/default/layout/html/google_analytics.erb +6 -9
  95. data/yard-templates/default/layout/html/setup.rb +2 -3
  96. metadata +26 -266
  97. data/bin/build-matrix +0 -70
  98. data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
  99. data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
  100. data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
  101. data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
  102. data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
  103. data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
  104. data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
  105. data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
  106. data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
  107. data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
  108. data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
  109. data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
  110. data/init.rb +0 -3
  111. data/lib/mocha/class_method.rb +0 -119
  112. data/lib/mocha/integration/mini_test/nothing.rb +0 -19
  113. data/lib/mocha/integration/mini_test/version_13.rb +0 -51
  114. data/lib/mocha/integration/mini_test/version_140.rb +0 -51
  115. data/lib/mocha/integration/mini_test/version_141.rb +0 -62
  116. data/lib/mocha/integration/mini_test/version_142_to_172.rb +0 -62
  117. data/lib/mocha/integration/mini_test/version_200.rb +0 -63
  118. data/lib/mocha/integration/mini_test/version_201_to_222.rb +0 -63
  119. data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +0 -67
  120. data/lib/mocha/integration/mini_test/version_2112_to_320.rb +0 -70
  121. data/lib/mocha/integration/mini_test/version_230_to_2101.rb +0 -65
  122. data/lib/mocha/integration/test_unit/gem_version_200.rb +0 -59
  123. data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +0 -59
  124. data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +0 -59
  125. data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +0 -65
  126. data/lib/mocha/integration/test_unit/nothing.rb +0 -19
  127. data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -58
  128. data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +0 -60
  129. data/lib/mocha/integration.rb +0 -14
  130. data/lib/mocha/mini_test.rb +0 -3
  131. data/lib/mocha/module_method.rb +0 -16
  132. data/lib/mocha/module_methods.rb +0 -14
  133. data/lib/mocha/multiple_yields.rb +0 -20
  134. data/lib/mocha/no_yields.rb +0 -11
  135. data/lib/mocha/parameter_matchers/object.rb +0 -17
  136. data/lib/mocha/pretty_parameters.rb +0 -28
  137. data/lib/mocha/setup.rb +0 -9
  138. data/lib/mocha/single_yield.rb +0 -18
  139. data/lib/mocha/standalone.rb +0 -4
  140. data/lib/mocha/unexpected_invocation.rb +0 -26
  141. data/lib/mocha_standalone.rb +0 -4
  142. data/test/acceptance/acceptance_test_helper.rb +0 -41
  143. data/test/acceptance/bug_18914_test.rb +0 -43
  144. data/test/acceptance/bug_21465_test.rb +0 -34
  145. data/test/acceptance/bug_21563_test.rb +0 -25
  146. data/test/acceptance/exception_rescue_test.rb +0 -55
  147. data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
  148. data/test/acceptance/expected_invocation_count_test.rb +0 -232
  149. data/test/acceptance/failure_messages_test.rb +0 -64
  150. data/test/acceptance/issue_272_test.rb +0 -52
  151. data/test/acceptance/issue_65_test.rb +0 -63
  152. data/test/acceptance/issue_70_test.rb +0 -55
  153. data/test/acceptance/mocha_example_test.rb +0 -98
  154. data/test/acceptance/mocha_test_result_test.rb +0 -84
  155. data/test/acceptance/mock_test.rb +0 -100
  156. data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
  157. data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
  158. data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
  159. data/test/acceptance/optional_parameters_test.rb +0 -70
  160. data/test/acceptance/parameter_matcher_test.rb +0 -337
  161. data/test/acceptance/partial_mocks_test.rb +0 -47
  162. data/test/acceptance/prepend_test.rb +0 -89
  163. data/test/acceptance/raise_exception_test.rb +0 -39
  164. data/test/acceptance/return_value_test.rb +0 -52
  165. data/test/acceptance/sequence_test.rb +0 -192
  166. data/test/acceptance/states_test.rb +0 -70
  167. data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
  168. data/test/acceptance/stub_any_instance_method_test.rb +0 -280
  169. data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
  170. data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
  171. data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
  172. data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
  173. data/test/acceptance/stub_everything_test.rb +0 -56
  174. data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
  175. data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
  176. data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
  177. data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
  178. data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -78
  179. data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
  180. data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
  181. data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
  182. data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -39
  183. data/test/acceptance/stub_module_method_test.rb +0 -163
  184. data/test/acceptance/stub_test.rb +0 -52
  185. data/test/acceptance/stubba_example_test.rb +0 -102
  186. data/test/acceptance/stubba_test_result_test.rb +0 -66
  187. data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
  188. data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
  189. data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
  190. data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
  191. data/test/acceptance/stubbing_nil_test.rb +0 -61
  192. data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -143
  193. data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
  194. data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
  195. data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
  196. data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
  197. data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
  198. data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
  199. data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
  200. data/test/acceptance/throw_test.rb +0 -45
  201. data/test/acceptance/unexpected_invocation_test.rb +0 -25
  202. data/test/acceptance/unstubbing_test.rb +0 -168
  203. data/test/assertions.rb +0 -8
  204. data/test/deprecation_disabler.rb +0 -15
  205. data/test/execution_point.rb +0 -36
  206. data/test/integration/mini_test_test.rb +0 -8
  207. data/test/integration/shared_tests.rb +0 -174
  208. data/test/integration/test_unit_test.rb +0 -8
  209. data/test/method_definer.rb +0 -24
  210. data/test/mini_test_result.rb +0 -90
  211. data/test/minitest_result.rb +0 -49
  212. data/test/simple_counter.rb +0 -13
  213. data/test/test_helper.rb +0 -50
  214. data/test/test_runner.rb +0 -58
  215. data/test/test_unit_result.rb +0 -20
  216. data/test/unit/any_instance_method_test.rb +0 -134
  217. data/test/unit/array_inspect_test.rb +0 -16
  218. data/test/unit/backtrace_filter_test.rb +0 -19
  219. data/test/unit/cardinality_test.rb +0 -56
  220. data/test/unit/central_test.rb +0 -100
  221. data/test/unit/change_state_side_effect_test.rb +0 -41
  222. data/test/unit/class_method_test.rb +0 -225
  223. data/test/unit/class_methods_test.rb +0 -40
  224. data/test/unit/configuration_test.rb +0 -38
  225. data/test/unit/date_time_inspect_test.rb +0 -21
  226. data/test/unit/exception_raiser_test.rb +0 -42
  227. data/test/unit/expectation_list_test.rb +0 -82
  228. data/test/unit/expectation_test.rb +0 -497
  229. data/test/unit/hash_inspect_test.rb +0 -16
  230. data/test/unit/hooks_test.rb +0 -29
  231. data/test/unit/in_state_ordering_constraint_test.rb +0 -43
  232. data/test/unit/method_matcher_test.rb +0 -28
  233. data/test/unit/mock_test.rb +0 -342
  234. data/test/unit/mockery_test.rb +0 -151
  235. data/test/unit/module_methods_test.rb +0 -19
  236. data/test/unit/multiple_yields_test.rb +0 -18
  237. data/test/unit/no_yields_test.rb +0 -18
  238. data/test/unit/object_inspect_test.rb +0 -39
  239. data/test/unit/object_methods_test.rb +0 -46
  240. data/test/unit/parameter_matchers/all_of_test.rb +0 -26
  241. data/test/unit/parameter_matchers/any_of_test.rb +0 -26
  242. data/test/unit/parameter_matchers/anything_test.rb +0 -21
  243. data/test/unit/parameter_matchers/equals_test.rb +0 -25
  244. data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
  245. data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
  246. data/test/unit/parameter_matchers/has_key_test.rb +0 -55
  247. data/test/unit/parameter_matchers/has_value_test.rb +0 -57
  248. data/test/unit/parameter_matchers/includes_test.rb +0 -102
  249. data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
  250. data/test/unit/parameter_matchers/is_a_test.rb +0 -25
  251. data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
  252. data/test/unit/parameter_matchers/not_test.rb +0 -26
  253. data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
  254. data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
  255. data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
  256. data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
  257. data/test/unit/parameters_matcher_test.rb +0 -121
  258. data/test/unit/receivers_test.rb +0 -66
  259. data/test/unit/return_values_test.rb +0 -63
  260. data/test/unit/sequence_test.rb +0 -104
  261. data/test/unit/single_return_value_test.rb +0 -14
  262. data/test/unit/single_yield_test.rb +0 -18
  263. data/test/unit/state_machine_test.rb +0 -98
  264. data/test/unit/string_inspect_test.rb +0 -11
  265. data/test/unit/thrower_test.rb +0 -20
  266. data/test/unit/yield_parameters_test.rb +0 -93
@@ -1,119 +0,0 @@
1
- require 'mocha/ruby_version'
2
- require 'metaclass'
3
-
4
- module Mocha
5
-
6
- class ClassMethod
7
-
8
- PrependedModule = Class.new(Module)
9
-
10
- attr_reader :stubbee, :method
11
-
12
- def initialize(stubbee, method)
13
- @stubbee = stubbee
14
- @original_method, @original_visibility = nil, nil
15
- @method = PRE_RUBY_V19 ? method.to_s : method.to_sym
16
- end
17
-
18
- def stub
19
- hide_original_method
20
- define_new_method
21
- end
22
-
23
- def unstub
24
- remove_new_method
25
- restore_original_method
26
- mock.unstub(method.to_sym)
27
- unless mock.any_expectations?
28
- reset_mocha
29
- end
30
- end
31
-
32
- def mock
33
- stubbee.mocha
34
- end
35
-
36
- def reset_mocha
37
- stubbee.reset_mocha
38
- end
39
-
40
- def hide_original_method
41
- if @original_visibility = method_visibility(method)
42
- begin
43
- if RUBY_V2_PLUS
44
- @definition_target = PrependedModule.new
45
- stubbee.__metaclass__.__send__ :prepend, @definition_target
46
- else
47
- @original_method = stubbee._method(method)
48
- if @original_method && @original_method.owner == stubbee.__metaclass__
49
- stubbee.__metaclass__.send(:remove_method, method)
50
- end
51
- end
52
- rescue NameError
53
- # deal with nasties like ActiveRecord::Associations::AssociationProxy
54
- end
55
- end
56
- end
57
-
58
- def define_new_method
59
- definition_target.class_eval(<<-CODE, __FILE__, __LINE__ + 1)
60
- def #{method}(*args, &block)
61
- mocha.method_missing(:#{method}, *args, &block)
62
- end
63
- CODE
64
- if @original_visibility
65
- Module.instance_method(@original_visibility).bind(definition_target).call(method)
66
- end
67
- end
68
-
69
- def remove_new_method
70
- definition_target.send(:remove_method, method)
71
- end
72
-
73
- def restore_original_method
74
- unless RUBY_V2_PLUS
75
- if @original_method && @original_method.owner == stubbee.__metaclass__
76
- if PRE_RUBY_V19
77
- original_method = @original_method
78
- stubbee.__metaclass__.send(:define_method, method) do |*args, &block|
79
- original_method.call(*args, &block)
80
- end
81
- else
82
- stubbee.__metaclass__.send(:define_method, method, @original_method)
83
- end
84
- end
85
- if @original_visibility
86
- Module.instance_method(@original_visibility).bind(stubbee.__metaclass__).call(method)
87
- end
88
- end
89
- end
90
-
91
- def matches?(other)
92
- return false unless (other.class == self.class)
93
- (stubbee.object_id == other.stubbee.object_id) and (method == other.method)
94
- end
95
-
96
- alias_method :==, :eql?
97
-
98
- def to_s
99
- "#{stubbee}.#{method}"
100
- end
101
-
102
- def method_visibility(method)
103
- symbol = method.to_sym
104
- metaclass = stubbee.__metaclass__
105
-
106
- (metaclass.public_method_defined?(symbol) && :public) ||
107
- (metaclass.protected_method_defined?(symbol) && :protected) ||
108
- (metaclass.private_method_defined?(symbol) && :private)
109
- end
110
-
111
- private
112
-
113
- def definition_target
114
- @definition_target ||= stubbee.__metaclass__
115
- end
116
-
117
- end
118
-
119
- end
@@ -1,19 +0,0 @@
1
- module Mocha
2
- module Integration
3
- module MiniTest
4
- module Nothing
5
- def self.applicable_to?(test_unit_version, ruby_version = nil)
6
- true
7
- end
8
-
9
- def self.description
10
- "nothing (no MiniTest integration available)"
11
- end
12
-
13
- def self.included(mod)
14
- raise "No MiniTest integration available"
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,51 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version13
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 1.3.0', '<= 1.3.1').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem v1.3"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- assertion_counter = AssertionCounter.new(self)
24
- result = '.'
25
- begin
26
- begin
27
- @passed = nil
28
- self.setup
29
- self.__send__ self.name
30
- mocha_verify(assertion_counter)
31
- @passed = true
32
- rescue Exception => e
33
- @passed = false
34
- result = runner.puke(self.class, self.name, Mocha::Integration::MiniTest.translate(e))
35
- ensure
36
- begin
37
- self.teardown
38
- rescue Exception => e
39
- result = runner.puke(self.class, self.name, Mocha::Integration::MiniTest.translate(e))
40
- end
41
- end
42
- ensure
43
- mocha_teardown
44
- end
45
- result
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,51 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version140
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('1.4.0').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem v1.4.0"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- assertion_counter = AssertionCounter.new(self)
24
- result = '.'
25
- begin
26
- begin
27
- @passed = nil
28
- self.setup
29
- self.__send__ self.__name__
30
- mocha_verify(assertion_counter)
31
- @passed = true
32
- rescue Exception => e
33
- @passed = false
34
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
35
- ensure
36
- begin
37
- self.teardown
38
- rescue Exception => e
39
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
40
- end
41
- end
42
- ensure
43
- mocha_teardown
44
- end
45
- result
46
- end
47
- end
48
- end
49
- end
50
- end
51
- end
@@ -1,62 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version141
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('1.4.1').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem v1.4.1"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- warn '%s#%s %.2fs' % [self.class, self.__name__,
25
- (Time.now - runner.start_time)]
26
- runner.status $stderr
27
- end
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = '.'
31
- begin
32
- begin
33
- @passed = nil
34
- self.setup
35
- self.__send__ self.__name__
36
- mocha_verify(assertion_counter)
37
- @passed = true
38
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
39
- raise
40
- rescue Exception => e
41
- @passed = false
42
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
43
- ensure
44
- begin
45
- self.teardown
46
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
47
- raise
48
- rescue Exception => e
49
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
50
- end
51
- trap 'INFO', 'DEFAULT'
52
- end
53
- ensure
54
- mocha_teardown
55
- end
56
- result
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,62 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version142To172
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 1.4.2', '<= 1.7.2').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem >= v1.4.2 and <= v1.7.2"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- warn '%s#%s %.2fs' % [self.class, self.__name__,
25
- (Time.now - runner.start_time)]
26
- runner.status $stderr
27
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = '.'
31
- begin
32
- begin
33
- @passed = nil
34
- self.setup
35
- self.__send__ self.__name__
36
- mocha_verify(assertion_counter)
37
- @passed = true
38
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
39
- raise
40
- rescue Exception => e
41
- @passed = false
42
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
43
- ensure
44
- begin
45
- self.teardown
46
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
47
- raise
48
- rescue Exception => e
49
- result = runner.puke(self.class, self.__name__, Mocha::Integration::MiniTest.translate(e))
50
- end
51
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
52
- end
53
- ensure
54
- mocha_teardown
55
- end
56
- result
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
@@ -1,63 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version200
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('2.0.0').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem v2.0.0"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- time = Time.now - runner.start_time
25
- warn "%s#%s %.2fs" % [self.class, self.__name__, time]
26
- runner.status $stderr
27
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = ""
31
- begin
32
- begin
33
- @passed = nil
34
- self.setup
35
- self.__send__ self.__name__
36
- mocha_verify(assertion_counter)
37
- result = "." unless io?
38
- @passed = true
39
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
40
- raise
41
- rescue Exception => e
42
- @passed = false
43
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
44
- ensure
45
- begin
46
- self.teardown
47
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
48
- raise
49
- rescue Exception => e
50
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
51
- end
52
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
53
- end
54
- ensure
55
- mocha_teardown
56
- end
57
- result
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,63 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version201To222
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 2.0.1', '<= 2.2.2').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem >= v2.0.1 <= v2.2.2"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- time = runner.start_time ? Time.now - runner.start_time : 0
25
- warn "%s#%s %.2fs" % [self.class, self.__name__, time]
26
- runner.status $stderr
27
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = ""
31
- begin
32
- begin
33
- @passed = nil
34
- self.setup
35
- self.__send__ self.__name__
36
- mocha_verify(assertion_counter)
37
- result = "." unless io?
38
- @passed = true
39
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
40
- raise
41
- rescue Exception => e
42
- @passed = false
43
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
44
- ensure
45
- begin
46
- self.teardown
47
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
48
- raise
49
- rescue Exception => e
50
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
51
- end
52
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
53
- end
54
- ensure
55
- mocha_teardown
56
- end
57
- result
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,67 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version2110To2111
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 2.11.0', '<= 2.11.1').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem >= v2.11.0 <= v2.11.1"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- time = runner.start_time ? Time.now - runner.start_time : 0
25
- warn "%s#%s %.2fs" % [self.class, self.__name__, time]
26
- runner.status $stderr
27
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = ""
31
- begin
32
- begin
33
- @passed = nil
34
- self.before_setup
35
- self.setup
36
- self.after_setup
37
- self.run_test self.__name__
38
- mocha_verify(assertion_counter)
39
- result = "." unless io?
40
- @passed = true
41
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
42
- raise
43
- rescue Exception => e
44
- @passed = false
45
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
46
- ensure
47
- %w{ before_teardown teardown after_teardown }.each do |hook|
48
- begin
49
- self.send hook
50
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
51
- raise
52
- rescue Exception => e
53
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
54
- end
55
- end
56
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
57
- end
58
- ensure
59
- mocha_teardown
60
- end
61
- result
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
@@ -1,70 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version2112To320
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 2.11.2', '<= 3.2.0').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem >= v2.11.2 <= v3.2.0"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap "INFO" do
24
- runner.report.each_with_index do |msg, i|
25
- warn "\n%3d) %s" % [i + 1, msg]
26
- end
27
- warn ''
28
- time = runner.start_time ? Time.now - runner.start_time : 0
29
- warn "Current Test: %s#%s %.2fs" % [self.class, self.__name__, time]
30
- runner.status $stderr
31
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
32
- assertion_counter = AssertionCounter.new(self)
33
- result = ""
34
- begin
35
- begin
36
- @passed = nil
37
- self.before_setup
38
- self.setup
39
- self.after_setup
40
- self.run_test self.__name__
41
- mocha_verify(assertion_counter)
42
- result = "." unless io?
43
- @passed = true
44
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
45
- raise
46
- rescue Exception => e
47
- @passed = false
48
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
49
- ensure
50
- %w{ before_teardown teardown after_teardown }.each do |hook|
51
- begin
52
- self.send hook
53
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
54
- raise
55
- rescue Exception => e
56
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
57
- end
58
- end
59
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
60
- end
61
- ensure
62
- mocha_teardown
63
- end
64
- result
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,65 +0,0 @@
1
- require 'mocha/integration/assertion_counter'
2
- require 'mocha/integration/monkey_patcher'
3
- require 'mocha/integration/mini_test/exception_translation'
4
-
5
- module Mocha
6
- module Integration
7
- module MiniTest
8
- module Version230To2101
9
- def self.applicable_to?(mini_test_version)
10
- Gem::Requirement.new('>= 2.3.0', '<= 2.10.1').satisfied_by?(mini_test_version)
11
- end
12
-
13
- def self.description
14
- "monkey patch for MiniTest gem >= v2.3.0 <= v2.10.1"
15
- end
16
-
17
- def self.included(mod)
18
- MonkeyPatcher.apply(mod, RunMethodPatch)
19
- end
20
-
21
- module RunMethodPatch
22
- def run runner
23
- trap 'INFO' do
24
- time = runner.start_time ? Time.now - runner.start_time : 0
25
- warn "%s#%s %.2fs" % [self.class, self.__name__, time]
26
- runner.status $stderr
27
- end if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
28
-
29
- assertion_counter = AssertionCounter.new(self)
30
- result = ""
31
- begin
32
- begin
33
- @passed = nil
34
- self.setup
35
- self.run_setup_hooks
36
- self.__send__ self.__name__
37
- mocha_verify(assertion_counter)
38
- result = "." unless io?
39
- @passed = true
40
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
41
- raise
42
- rescue Exception => e
43
- @passed = false
44
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
45
- ensure
46
- begin
47
- self.run_teardown_hooks
48
- self.teardown
49
- rescue *::MiniTest::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
50
- raise
51
- rescue Exception => e
52
- result = runner.puke self.class, self.__name__, Mocha::Integration::MiniTest.translate(e)
53
- end
54
- trap 'INFO', 'DEFAULT' if ::MiniTest::Unit::TestCase::SUPPORTS_INFO_SIGNAL
55
- end
56
- ensure
57
- mocha_teardown
58
- end
59
- result
60
- end
61
- end
62
- end
63
- end
64
- end
65
- end