mocha 1.8.0 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +7 -30
- data/.yardopts +1 -0
- data/README.md +40 -13
- data/RELEASE.md +97 -0
- data/Rakefile +10 -7
- data/bin/build-matrix +1 -2
- data/docs/CNAME +1 -1
- data/docs/Mocha.html +132 -5
- data/docs/Mocha/API.html +437 -206
- data/docs/Mocha/ClassMethods.html +13 -16
- data/docs/Mocha/Configuration.html +1126 -227
- data/docs/Mocha/Expectation.html +420 -267
- data/docs/Mocha/ExpectationError.html +5 -10
- data/docs/Mocha/ExpectationErrorFactory.html +9 -18
- data/docs/Mocha/Hooks.html +12 -27
- data/docs/Mocha/Integration.html +3 -3
- data/docs/Mocha/Integration/MiniTest.html +3 -3
- data/docs/Mocha/Integration/MiniTest/Adapter.html +5 -6
- data/docs/Mocha/Integration/TestUnit.html +3 -3
- data/docs/Mocha/Integration/TestUnit/Adapter.html +5 -6
- data/docs/Mocha/Mock.html +202 -162
- data/docs/Mocha/ObjectMethods.html +121 -68
- data/docs/Mocha/ParameterMatchers.html +21 -109
- data/docs/Mocha/ParameterMatchers/AllOf.html +4 -5
- data/docs/Mocha/ParameterMatchers/AnyOf.html +4 -5
- data/docs/Mocha/ParameterMatchers/AnyParameters.html +3 -3
- data/docs/Mocha/ParameterMatchers/Anything.html +3 -3
- data/docs/Mocha/ParameterMatchers/Base.html +8 -15
- data/docs/Mocha/ParameterMatchers/Equals.html +4 -5
- data/docs/Mocha/ParameterMatchers/EquivalentUri.html +3 -3
- data/docs/Mocha/ParameterMatchers/HasEntries.html +4 -5
- data/docs/Mocha/ParameterMatchers/HasEntry.html +4 -5
- data/docs/Mocha/ParameterMatchers/HasKey.html +4 -5
- data/docs/Mocha/ParameterMatchers/HasValue.html +4 -5
- data/docs/Mocha/ParameterMatchers/Includes.html +4 -5
- data/docs/Mocha/ParameterMatchers/InstanceOf.html +4 -5
- data/docs/Mocha/ParameterMatchers/IsA.html +3 -3
- data/docs/Mocha/ParameterMatchers/KindOf.html +4 -5
- data/docs/Mocha/ParameterMatchers/Not.html +4 -5
- data/docs/Mocha/ParameterMatchers/Optionally.html +3 -3
- data/docs/Mocha/ParameterMatchers/RegexpMatches.html +4 -5
- data/docs/Mocha/ParameterMatchers/RespondsWith.html +4 -5
- data/docs/Mocha/ParameterMatchers/YamlEquivalent.html +4 -5
- data/docs/Mocha/Sequence.html +3 -3
- data/docs/Mocha/StateMachine.html +13 -25
- data/docs/Mocha/StateMachine/State.html +4 -5
- data/docs/Mocha/StateMachine/StatePredicate.html +4 -5
- data/docs/Mocha/StubbingError.html +3 -3
- data/docs/_index.html +4 -22
- data/docs/class_list.html +1 -1
- data/docs/file.COPYING.html +3 -3
- data/docs/file.MIT-LICENSE.html +3 -3
- data/docs/file.README.html +46 -16
- data/docs/file.RELEASE.html +130 -3
- data/docs/frames.html +1 -1
- data/docs/index.html +46 -16
- data/docs/js/app.js +11 -0
- data/docs/method_list.html +117 -37
- data/docs/top-level-namespace.html +3 -3
- data/gemfiles/Gemfile.minitest.5.11.3 +7 -0
- data/init.rb +1 -3
- data/lib/mocha.rb +8 -0
- data/lib/mocha/any_instance_method.rb +11 -53
- data/lib/mocha/api.rb +120 -56
- data/lib/mocha/block_matcher.rb +31 -0
- data/lib/mocha/cardinality.rb +26 -11
- data/lib/mocha/class_methods.rb +17 -15
- data/lib/mocha/configuration.rb +351 -67
- data/lib/mocha/deprecation.rb +2 -1
- data/lib/mocha/detection/test_unit.rb +1 -3
- data/lib/mocha/exception_raiser.rb +2 -1
- data/lib/mocha/expectation.rb +102 -63
- data/lib/mocha/expectation_error.rb +1 -3
- data/lib/mocha/expectation_list.rb +6 -6
- data/lib/mocha/inspect.rb +28 -26
- data/lib/mocha/instance_method.rb +19 -2
- data/lib/mocha/integration.rb +1 -3
- data/lib/mocha/integration/mini_test.rb +7 -0
- data/lib/mocha/integration/test_unit.rb +7 -0
- data/lib/mocha/invocation.rb +77 -0
- data/lib/mocha/macos_version.rb +5 -0
- data/lib/mocha/minitest.rb +6 -1
- data/lib/mocha/mock.rb +46 -31
- data/lib/mocha/mockery.rb +25 -61
- data/lib/mocha/names.rb +1 -1
- data/lib/mocha/object_methods.rb +13 -19
- data/lib/mocha/parameter_matchers.rb +1 -1
- data/lib/mocha/parameter_matchers/all_of.rb +1 -1
- data/lib/mocha/parameter_matchers/any_of.rb +1 -1
- data/lib/mocha/parameter_matchers/equivalent_uri.rb +0 -9
- data/lib/mocha/parameter_matchers/includes.rb +2 -0
- data/lib/mocha/parameter_matchers/instance_methods.rb +18 -0
- data/lib/mocha/raised_exception.rb +11 -0
- data/lib/mocha/return_values.rb +3 -3
- data/lib/mocha/setup.rb +5 -0
- data/lib/mocha/single_return_value.rb +2 -1
- data/lib/mocha/singleton_class.rb +9 -0
- data/lib/mocha/stubbed_method.rb +127 -0
- data/lib/mocha/test_unit.rb +6 -1
- data/lib/mocha/thrower.rb +2 -1
- data/lib/mocha/thrown_object.rb +12 -0
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +5 -11
- data/mocha.gemspec +1 -3
- data/test/acceptance/acceptance_test_helper.rb +7 -0
- data/test/acceptance/bug_18914_test.rb +0 -1
- data/test/acceptance/bug_21465_test.rb +0 -1
- data/test/acceptance/bug_21563_test.rb +0 -1
- data/test/acceptance/display_matching_invocations_alongside_expectations_test.rb +69 -0
- data/test/acceptance/exception_rescue_test.rb +1 -2
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -1
- data/test/acceptance/expected_invocation_count_test.rb +2 -3
- data/test/acceptance/failure_messages_test.rb +16 -1
- data/test/acceptance/issue_272_test.rb +1 -2
- data/test/acceptance/issue_65_test.rb +0 -1
- data/test/acceptance/issue_70_test.rb +0 -1
- data/test/acceptance/mocha_example_test.rb +0 -1
- data/test/acceptance/mocha_test_result_test.rb +0 -1
- data/test/acceptance/mock_built_with_first_argument_type_being_string_test.rb +99 -0
- data/test/acceptance/mock_test.rb +47 -6
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -1
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -1
- data/test/acceptance/multiple_yielding_test.rb +56 -0
- data/test/acceptance/optional_parameters_test.rb +0 -1
- data/test/acceptance/parameter_matcher_test.rb +0 -1
- data/test/acceptance/partial_mocks_test.rb +0 -1
- data/test/acceptance/prepend_test.rb +0 -1
- data/test/acceptance/prevent_use_of_mocha_outside_test_test.rb +0 -1
- data/test/acceptance/raise_exception_test.rb +0 -1
- data/test/acceptance/return_value_test.rb +0 -1
- data/test/acceptance/sequence_test.rb +0 -1
- data/test/acceptance/states_test.rb +0 -1
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +1 -2
- data/test/acceptance/stub_any_instance_method_test.rb +20 -1
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -1
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -1
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +1 -2
- data/test/acceptance/stub_everything_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -1
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -1
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -1
- data/test/acceptance/stub_module_method_test.rb +0 -1
- data/test/acceptance/stub_test.rb +0 -1
- data/test/acceptance/stubba_example_test.rb +0 -1
- data/test/acceptance/stubba_test_result_test.rb +0 -1
- data/test/acceptance/stubbing_error_backtrace_test.rb +4 -5
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -1
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -1
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +5 -5
- data/test/acceptance/stubbing_nil_test.rb +5 -5
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +27 -11
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +11 -11
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +11 -11
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +8 -8
- data/test/acceptance/stubbing_non_public_class_method_test.rb +9 -9
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +9 -9
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +5 -5
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -1
- data/test/acceptance/throw_test.rb +0 -1
- data/test/acceptance/unexpected_invocation_test.rb +0 -1
- data/test/acceptance/unstubbing_test.rb +0 -1
- data/test/acceptance/yielding_test.rb +78 -0
- data/test/integration/shared_tests.rb +5 -3
- data/test/method_definer.rb +11 -17
- data/test/test_runner.rb +2 -0
- data/test/unit/any_instance_method_test.rb +60 -35
- data/test/unit/cardinality_test.rb +41 -23
- data/test/unit/central_test.rb +0 -1
- data/test/unit/class_methods_test.rb +1 -1
- data/test/unit/configuration_test.rb +12 -12
- data/test/unit/exception_raiser_test.rb +10 -5
- data/test/unit/expectation_list_test.rb +13 -11
- data/test/unit/expectation_test.rb +117 -103
- data/test/unit/instance_method_test.rb +282 -0
- data/test/unit/mock_test.rb +28 -19
- data/test/unit/mockery_test.rb +8 -11
- data/test/unit/module_methods_test.rb +2 -3
- data/test/unit/object_inspect_test.rb +6 -4
- data/test/unit/object_methods_test.rb +3 -2
- data/test/unit/parameter_matchers/equivalent_uri_test.rb +0 -9
- data/test/unit/parameter_matchers/has_entries_test.rb +1 -1
- data/test/unit/parameter_matchers/has_entry_test.rb +1 -1
- data/test/unit/parameter_matchers/has_key_test.rb +1 -1
- data/test/unit/parameter_matchers/has_value_test.rb +1 -1
- data/test/unit/parameter_matchers/includes_test.rb +1 -1
- data/test/unit/parameter_matchers/responds_with_test.rb +1 -1
- data/test/unit/return_values_test.rb +25 -20
- data/test/unit/single_return_value_test.rb +6 -1
- data/test/unit/thrower_test.rb +7 -2
- data/test/unit/yield_parameters_test.rb +35 -53
- metadata +18 -35
- data/docs/Mocha/UnexpectedInvocation.html +0 -140
- data/lib/mocha/class_method.rb +0 -113
- data/lib/mocha/mini_test.rb +0 -5
- data/lib/mocha/module_method.rb +0 -6
- data/lib/mocha/module_methods.rb +0 -10
- data/lib/mocha/multiple_yields.rb +0 -15
- data/lib/mocha/no_yields.rb +0 -5
- data/lib/mocha/parameter_matchers/object.rb +0 -15
- data/lib/mocha/single_yield.rb +0 -13
- data/lib/mocha/standalone.rb +0 -4
- data/lib/mocha/unexpected_invocation.rb +0 -24
- data/lib/mocha_standalone.rb +0 -4
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -56
- data/test/unit/class_method_test.rb +0 -254
- data/test/unit/multiple_yields_test.rb +0 -16
- data/test/unit/no_yields_test.rb +0 -16
- data/test/unit/single_yield_test.rb +0 -16
@@ -44,7 +44,7 @@ class ObjectMethodsTest < Mocha::TestCase
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_should_use_stubba_instance_method_for_object
|
47
|
-
assert_equal Mocha::InstanceMethod,
|
47
|
+
assert_equal Mocha::InstanceMethod, @object.stubba_method
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_should_stub_self_for_object
|
@@ -52,11 +52,12 @@ class ObjectMethodsTest < Mocha::TestCase
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def test_nobody_expects_the_spanish_inquisition
|
55
|
-
|
55
|
+
assert_raises(Mocha::ExpectationErrorFactory.exception_class) { @object.expects(:the_spanish_inquisition) }
|
56
56
|
end
|
57
57
|
|
58
58
|
def test_should_alias_object_method
|
59
59
|
klass = Class.new { def self.method_x; end }
|
60
|
+
klass.extend(Mocha::ObjectMethods)
|
60
61
|
assert_equal klass._method(:method_x), klass.method(:method_x)
|
61
62
|
end
|
62
63
|
end
|
@@ -1,23 +1,14 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
require 'deprecation_disabler'
|
3
2
|
require 'mocha/parameter_matchers/equivalent_uri'
|
4
3
|
|
5
4
|
class EquivalentUriMatchesTest < Mocha::TestCase
|
6
5
|
include Mocha::ParameterMatchers
|
7
|
-
include DeprecationDisabler
|
8
6
|
|
9
7
|
def test_should_match_identical_uri
|
10
8
|
matcher = equivalent_uri('http://example.com/foo?a=1&b=2')
|
11
9
|
assert matcher.matches?(['http://example.com/foo?a=1&b=2'])
|
12
10
|
end
|
13
11
|
|
14
|
-
def test_should_support_legacy_matcher_method
|
15
|
-
disable_deprecations do
|
16
|
-
matcher = has_equivalent_query_string('http://example.com/foo?a=1&b=2')
|
17
|
-
assert matcher.matches?(['http://example.com/foo?a=1&b=2'])
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
12
|
def test_should_match_uri_with_rearranged_query_string
|
22
13
|
matcher = equivalent_uri('http://example.com/foo?b=2&a=1')
|
23
14
|
assert matcher.matches?(['http://example.com/foo?a=1&b=2'])
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/has_entries'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/inspect'
|
6
6
|
|
7
7
|
class HasEntriesTest < Mocha::TestCase
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/has_entry'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/parameter_matchers/equals'
|
6
6
|
require 'mocha/inspect'
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/has_key'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/inspect'
|
6
6
|
|
7
7
|
class HasKeyTest < Mocha::TestCase
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/has_value'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/parameter_matchers/equals'
|
6
6
|
require 'mocha/inspect'
|
7
7
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/includes'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/parameter_matchers/has_key'
|
6
6
|
require 'mocha/parameter_matchers/regexp_matches'
|
7
7
|
require 'mocha/inspect'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path('../../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/parameter_matchers/responds_with'
|
4
|
-
require 'mocha/parameter_matchers/
|
4
|
+
require 'mocha/parameter_matchers/instance_methods'
|
5
5
|
require 'mocha/inspect'
|
6
6
|
|
7
7
|
class RespondsWithTest < Mocha::TestCase
|
@@ -1,61 +1,66 @@
|
|
1
1
|
require File.expand_path('../../test_helper', __FILE__)
|
2
2
|
|
3
|
+
require 'mocha/invocation'
|
3
4
|
require 'mocha/return_values'
|
4
5
|
|
5
6
|
class ReturnValuesTest < Mocha::TestCase
|
6
7
|
include Mocha
|
7
8
|
|
9
|
+
def new_invocation
|
10
|
+
Invocation.new(:irrelevant, :irrelevant)
|
11
|
+
end
|
12
|
+
|
8
13
|
def test_should_return_nil
|
9
14
|
values = ReturnValues.new
|
10
|
-
assert_nil values.next
|
15
|
+
assert_nil values.next(new_invocation)
|
11
16
|
end
|
12
17
|
|
13
18
|
def test_should_keep_returning_nil
|
14
19
|
values = ReturnValues.new
|
15
|
-
values.next
|
16
|
-
assert_nil values.next
|
17
|
-
assert_nil values.next
|
20
|
+
values.next(new_invocation)
|
21
|
+
assert_nil values.next(new_invocation)
|
22
|
+
assert_nil values.next(new_invocation)
|
18
23
|
end
|
19
24
|
|
20
25
|
def test_should_return_evaluated_single_return_value
|
21
26
|
values = ReturnValues.new(SingleReturnValue.new('value'))
|
22
|
-
assert_equal 'value', values.next
|
27
|
+
assert_equal 'value', values.next(new_invocation)
|
23
28
|
end
|
24
29
|
|
25
30
|
def test_should_keep_returning_evaluated_single_return_value
|
26
31
|
values = ReturnValues.new(SingleReturnValue.new('value'))
|
27
|
-
values.next
|
28
|
-
assert_equal 'value', values.next
|
29
|
-
assert_equal 'value', values.next
|
32
|
+
values.next(new_invocation)
|
33
|
+
assert_equal 'value', values.next(new_invocation)
|
34
|
+
assert_equal 'value', values.next(new_invocation)
|
30
35
|
end
|
31
36
|
|
32
37
|
def test_should_return_consecutive_evaluated_single_return_values
|
33
38
|
values = ReturnValues.new(SingleReturnValue.new('value_1'), SingleReturnValue.new('value_2'))
|
34
|
-
assert_equal 'value_1', values.next
|
35
|
-
assert_equal 'value_2', values.next
|
39
|
+
assert_equal 'value_1', values.next(new_invocation)
|
40
|
+
assert_equal 'value_2', values.next(new_invocation)
|
36
41
|
end
|
37
42
|
|
38
43
|
def test_should_keep_returning_last_of_consecutive_evaluated_single_return_values
|
39
44
|
values = ReturnValues.new(SingleReturnValue.new('value_1'), SingleReturnValue.new('value_2'))
|
40
|
-
values.next
|
41
|
-
values.next
|
42
|
-
assert_equal 'value_2', values.next
|
43
|
-
assert_equal 'value_2', values.next
|
45
|
+
values.next(new_invocation)
|
46
|
+
values.next(new_invocation)
|
47
|
+
assert_equal 'value_2', values.next(new_invocation)
|
48
|
+
assert_equal 'value_2', values.next(new_invocation)
|
44
49
|
end
|
45
50
|
|
46
51
|
def test_should_build_single_return_values_for_each_values
|
47
52
|
values = ReturnValues.build('value_1', 'value_2', 'value_3').values
|
48
|
-
assert_equal 'value_1', values[0].evaluate
|
49
|
-
assert_equal 'value_2', values[1].evaluate
|
50
|
-
assert_equal 'value_3', values[2].evaluate
|
53
|
+
assert_equal 'value_1', values[0].evaluate(new_invocation)
|
54
|
+
assert_equal 'value_2', values[1].evaluate(new_invocation)
|
55
|
+
assert_equal 'value_3', values[2].evaluate(new_invocation)
|
51
56
|
end
|
52
57
|
|
53
58
|
def test_should_combine_two_sets_of_return_values
|
54
59
|
values1 = ReturnValues.build('value_1')
|
55
60
|
values2 = ReturnValues.build('value_2a', 'value_2b')
|
56
61
|
values = (values1 + values2).values
|
57
|
-
assert_equal 'value_1', values[0].evaluate
|
58
|
-
assert_equal 'value_2a', values[1].evaluate
|
59
|
-
assert_equal 'value_2b', values[2].evaluate
|
62
|
+
assert_equal 'value_1', values[0].evaluate(new_invocation)
|
63
|
+
assert_equal 'value_2a', values[1].evaluate(new_invocation)
|
64
|
+
assert_equal 'value_2b', values[2].evaluate(new_invocation)
|
60
65
|
end
|
61
66
|
end
|
@@ -1,12 +1,17 @@
|
|
1
1
|
require File.expand_path('../../test_helper', __FILE__)
|
2
2
|
|
3
|
+
require 'mocha/invocation'
|
3
4
|
require 'mocha/single_return_value'
|
4
5
|
|
5
6
|
class SingleReturnValueTest < Mocha::TestCase
|
6
7
|
include Mocha
|
7
8
|
|
9
|
+
def new_invocation
|
10
|
+
Invocation.new(:irrelevant, :irrelevant)
|
11
|
+
end
|
12
|
+
|
8
13
|
def test_should_return_value
|
9
14
|
value = SingleReturnValue.new('value')
|
10
|
-
assert_equal 'value', value.evaluate
|
15
|
+
assert_equal 'value', value.evaluate(new_invocation)
|
11
16
|
end
|
12
17
|
end
|
data/test/unit/thrower_test.rb
CHANGED
@@ -1,18 +1,23 @@
|
|
1
1
|
require File.expand_path('../../test_helper', __FILE__)
|
2
2
|
|
3
|
+
require 'mocha/invocation'
|
3
4
|
require 'mocha/thrower'
|
4
5
|
|
5
6
|
class ThrowerTest < Mocha::TestCase
|
6
7
|
include Mocha
|
7
8
|
|
9
|
+
def new_invocation
|
10
|
+
Invocation.new(:irrelevant, :irrelevant)
|
11
|
+
end
|
12
|
+
|
8
13
|
def test_should_throw_tag
|
9
14
|
thrower = Thrower.new(:tag)
|
10
|
-
assert_throws(:tag) { thrower.evaluate }
|
15
|
+
assert_throws(:tag) { thrower.evaluate(new_invocation) }
|
11
16
|
end
|
12
17
|
|
13
18
|
def test_should_throw_tag_with_return_value
|
14
19
|
thrower = Thrower.new(:tag, 'return-value')
|
15
|
-
return_value = catch(:tag) { thrower.evaluate }
|
20
|
+
return_value = catch(:tag) { thrower.evaluate(new_invocation) }
|
16
21
|
assert_equal 'return-value', return_value
|
17
22
|
end
|
18
23
|
end
|
@@ -1,91 +1,73 @@
|
|
1
1
|
require File.expand_path('../../test_helper', __FILE__)
|
2
2
|
|
3
3
|
require 'mocha/yield_parameters'
|
4
|
-
require 'mocha/no_yields'
|
5
|
-
require 'mocha/single_yield'
|
6
|
-
require 'mocha/multiple_yields'
|
7
4
|
|
8
5
|
class YieldParametersTest < Mocha::TestCase
|
9
6
|
include Mocha
|
10
7
|
|
11
8
|
def test_should_return_null_yield_parameter_group_by_default
|
12
|
-
|
13
|
-
assert yield_parameters.next_invocation.is_a?(NoYields)
|
9
|
+
assert_next_invocation_yields(YieldParameters.new, [])
|
14
10
|
end
|
15
11
|
|
16
12
|
def test_should_return_single_yield_parameter_group
|
17
13
|
yield_parameters = YieldParameters.new
|
18
|
-
yield_parameters.add(1, 2, 3)
|
19
|
-
|
20
|
-
assert parameter_group.is_a?(SingleYield)
|
21
|
-
assert_equal [1, 2, 3], parameter_group.parameters
|
14
|
+
yield_parameters.add([1, 2, 3])
|
15
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
|
22
16
|
end
|
23
17
|
|
24
18
|
def test_should_keep_returning_single_yield_parameter_group
|
25
19
|
yield_parameters = YieldParameters.new
|
26
|
-
yield_parameters.add(1, 2, 3)
|
27
|
-
yield_parameters
|
28
|
-
|
29
|
-
assert parameter_group.is_a?(SingleYield)
|
30
|
-
assert_equal [1, 2, 3], parameter_group.parameters
|
31
|
-
parameter_group = yield_parameters.next_invocation
|
32
|
-
assert parameter_group.is_a?(SingleYield)
|
33
|
-
assert_equal [1, 2, 3], parameter_group.parameters
|
20
|
+
yield_parameters.add([1, 2, 3])
|
21
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
|
22
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
|
34
23
|
end
|
35
24
|
|
36
25
|
def test_should_return_consecutive_single_yield_parameter_groups
|
37
26
|
yield_parameters = YieldParameters.new
|
38
|
-
yield_parameters.add(1, 2, 3)
|
39
|
-
yield_parameters.add(4, 5)
|
40
|
-
|
41
|
-
|
42
|
-
assert_equal [1, 2, 3], parameter_group.parameters
|
43
|
-
parameter_group = yield_parameters.next_invocation
|
44
|
-
assert parameter_group.is_a?(SingleYield)
|
45
|
-
assert_equal [4, 5], parameter_group.parameters
|
27
|
+
yield_parameters.add([1, 2, 3])
|
28
|
+
yield_parameters.add([4, 5])
|
29
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
|
30
|
+
assert_next_invocation_yields(yield_parameters, [[4, 5]])
|
46
31
|
end
|
47
32
|
|
48
33
|
def test_should_return_multiple_yield_parameter_group
|
49
34
|
yield_parameters = YieldParameters.new
|
50
|
-
yield_parameters.
|
51
|
-
|
52
|
-
|
53
|
-
|
35
|
+
yield_parameters.add([1, 2, 3], [4, 5])
|
36
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_should_return_multiple_yield_parameter_group_when_arguments_are_not_arrays
|
40
|
+
yield_parameters = YieldParameters.new
|
41
|
+
yield_parameters.add(1, { :b => 2 }, 3)
|
42
|
+
assert_next_invocation_yields(yield_parameters, [[1], [{ :b => 2 }], [3]])
|
54
43
|
end
|
55
44
|
|
56
45
|
def test_should_keep_returning_multiple_yield_parameter_group
|
57
46
|
yield_parameters = YieldParameters.new
|
58
|
-
yield_parameters.
|
59
|
-
yield_parameters
|
60
|
-
|
61
|
-
assert parameter_group.is_a?(MultipleYields)
|
62
|
-
assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
|
63
|
-
parameter_group = yield_parameters.next_invocation
|
64
|
-
assert parameter_group.is_a?(MultipleYields)
|
65
|
-
assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
|
47
|
+
yield_parameters.add([1, 2, 3], [4, 5])
|
48
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
|
49
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
|
66
50
|
end
|
67
51
|
|
68
52
|
def test_should_return_consecutive_multiple_yield_parameter_groups
|
69
53
|
yield_parameters = YieldParameters.new
|
70
|
-
yield_parameters.
|
71
|
-
yield_parameters.
|
72
|
-
|
73
|
-
|
74
|
-
assert_equal [[1, 2, 3], [4, 5]], parameter_group.parameter_groups
|
75
|
-
parameter_group = yield_parameters.next_invocation
|
76
|
-
assert parameter_group.is_a?(MultipleYields)
|
77
|
-
assert_equal [[6, 7], [8, 9, 0]], parameter_group.parameter_groups
|
54
|
+
yield_parameters.add([1, 2, 3], [4, 5])
|
55
|
+
yield_parameters.add([6, 7], [8, 9, 0])
|
56
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3], [4, 5]])
|
57
|
+
assert_next_invocation_yields(yield_parameters, [[6, 7], [8, 9, 0]])
|
78
58
|
end
|
79
59
|
|
80
60
|
def test_should_return_consecutive_single_and_multiple_yield_parameter_groups
|
81
61
|
yield_parameters = YieldParameters.new
|
82
|
-
yield_parameters.add(1, 2, 3)
|
83
|
-
yield_parameters.
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
62
|
+
yield_parameters.add([1, 2, 3])
|
63
|
+
yield_parameters.add([4, 5, 6], [7, 8])
|
64
|
+
assert_next_invocation_yields(yield_parameters, [[1, 2, 3]])
|
65
|
+
assert_next_invocation_yields(yield_parameters, [[4, 5, 6], [7, 8]])
|
66
|
+
end
|
67
|
+
|
68
|
+
private
|
69
|
+
|
70
|
+
def assert_next_invocation_yields(yield_parameters, expected)
|
71
|
+
assert_equal expected, yield_parameters.next_invocation
|
90
72
|
end
|
91
73
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Mead
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: metaclass
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.1
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.1
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: rake
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,6 +74,7 @@ extensions: []
|
|
88
74
|
extra_rdoc_files: []
|
89
75
|
files:
|
90
76
|
- ".gemtest"
|
77
|
+
- ".github/FUNDING.yml"
|
91
78
|
- ".rubocop.yml"
|
92
79
|
- ".rubocop_todo.yml"
|
93
80
|
- ".yardopts"
|
@@ -141,7 +128,6 @@ files:
|
|
141
128
|
- docs/Mocha/StateMachine/State.html
|
142
129
|
- docs/Mocha/StateMachine/StatePredicate.html
|
143
130
|
- docs/Mocha/StubbingError.html
|
144
|
-
- docs/Mocha/UnexpectedInvocation.html
|
145
131
|
- docs/_index.html
|
146
132
|
- docs/class_list.html
|
147
133
|
- docs/css/common.css
|
@@ -168,6 +154,7 @@ files:
|
|
168
154
|
- gemfiles/Gemfile.minitest.2.11.0
|
169
155
|
- gemfiles/Gemfile.minitest.2.11.2
|
170
156
|
- gemfiles/Gemfile.minitest.2.3.0
|
157
|
+
- gemfiles/Gemfile.minitest.5.11.3
|
171
158
|
- gemfiles/Gemfile.minitest.latest
|
172
159
|
- gemfiles/Gemfile.test-unit.2.0.0
|
173
160
|
- gemfiles/Gemfile.test-unit.2.0.1
|
@@ -179,10 +166,10 @@ files:
|
|
179
166
|
- lib/mocha/api.rb
|
180
167
|
- lib/mocha/argument_iterator.rb
|
181
168
|
- lib/mocha/backtrace_filter.rb
|
169
|
+
- lib/mocha/block_matcher.rb
|
182
170
|
- lib/mocha/cardinality.rb
|
183
171
|
- lib/mocha/central.rb
|
184
172
|
- lib/mocha/change_state_side_effect.rb
|
185
|
-
- lib/mocha/class_method.rb
|
186
173
|
- lib/mocha/class_methods.rb
|
187
174
|
- lib/mocha/configuration.rb
|
188
175
|
- lib/mocha/debug.rb
|
@@ -224,18 +211,15 @@ files:
|
|
224
211
|
- lib/mocha/integration/test_unit/nothing.rb
|
225
212
|
- lib/mocha/integration/test_unit/ruby_version_185_and_below.rb
|
226
213
|
- lib/mocha/integration/test_unit/ruby_version_186_and_above.rb
|
214
|
+
- lib/mocha/invocation.rb
|
227
215
|
- lib/mocha/is_a.rb
|
228
216
|
- lib/mocha/logger.rb
|
217
|
+
- lib/mocha/macos_version.rb
|
229
218
|
- lib/mocha/method_matcher.rb
|
230
|
-
- lib/mocha/mini_test.rb
|
231
219
|
- lib/mocha/minitest.rb
|
232
220
|
- lib/mocha/mock.rb
|
233
221
|
- lib/mocha/mockery.rb
|
234
|
-
- lib/mocha/module_method.rb
|
235
|
-
- lib/mocha/module_methods.rb
|
236
|
-
- lib/mocha/multiple_yields.rb
|
237
222
|
- lib/mocha/names.rb
|
238
|
-
- lib/mocha/no_yields.rb
|
239
223
|
- lib/mocha/not_initialized_error.rb
|
240
224
|
- lib/mocha/object_methods.rb
|
241
225
|
- lib/mocha/parameter_matchers.rb
|
@@ -251,38 +235,39 @@ files:
|
|
251
235
|
- lib/mocha/parameter_matchers/has_key.rb
|
252
236
|
- lib/mocha/parameter_matchers/has_value.rb
|
253
237
|
- lib/mocha/parameter_matchers/includes.rb
|
238
|
+
- lib/mocha/parameter_matchers/instance_methods.rb
|
254
239
|
- lib/mocha/parameter_matchers/instance_of.rb
|
255
240
|
- lib/mocha/parameter_matchers/is_a.rb
|
256
241
|
- lib/mocha/parameter_matchers/kind_of.rb
|
257
242
|
- lib/mocha/parameter_matchers/not.rb
|
258
|
-
- lib/mocha/parameter_matchers/object.rb
|
259
243
|
- lib/mocha/parameter_matchers/optionally.rb
|
260
244
|
- lib/mocha/parameter_matchers/regexp_matches.rb
|
261
245
|
- lib/mocha/parameter_matchers/responds_with.rb
|
262
246
|
- lib/mocha/parameter_matchers/yaml_equivalent.rb
|
263
247
|
- lib/mocha/parameters_matcher.rb
|
264
248
|
- lib/mocha/pretty_parameters.rb
|
249
|
+
- lib/mocha/raised_exception.rb
|
265
250
|
- lib/mocha/receivers.rb
|
266
251
|
- lib/mocha/return_values.rb
|
267
252
|
- lib/mocha/ruby_version.rb
|
268
253
|
- lib/mocha/sequence.rb
|
269
254
|
- lib/mocha/setup.rb
|
270
255
|
- lib/mocha/single_return_value.rb
|
271
|
-
- lib/mocha/
|
272
|
-
- lib/mocha/standalone.rb
|
256
|
+
- lib/mocha/singleton_class.rb
|
273
257
|
- lib/mocha/state_machine.rb
|
258
|
+
- lib/mocha/stubbed_method.rb
|
274
259
|
- lib/mocha/stubbing_error.rb
|
275
260
|
- lib/mocha/test_unit.rb
|
276
261
|
- lib/mocha/thrower.rb
|
277
|
-
- lib/mocha/
|
262
|
+
- lib/mocha/thrown_object.rb
|
278
263
|
- lib/mocha/version.rb
|
279
264
|
- lib/mocha/yield_parameters.rb
|
280
|
-
- lib/mocha_standalone.rb
|
281
265
|
- mocha.gemspec
|
282
266
|
- test/acceptance/acceptance_test_helper.rb
|
283
267
|
- test/acceptance/bug_18914_test.rb
|
284
268
|
- test/acceptance/bug_21465_test.rb
|
285
269
|
- test/acceptance/bug_21563_test.rb
|
270
|
+
- test/acceptance/display_matching_invocations_alongside_expectations_test.rb
|
286
271
|
- test/acceptance/exception_rescue_test.rb
|
287
272
|
- test/acceptance/expectations_on_multiple_methods_test.rb
|
288
273
|
- test/acceptance/expected_invocation_count_test.rb
|
@@ -292,10 +277,11 @@ files:
|
|
292
277
|
- test/acceptance/issue_70_test.rb
|
293
278
|
- test/acceptance/mocha_example_test.rb
|
294
279
|
- test/acceptance/mocha_test_result_test.rb
|
280
|
+
- test/acceptance/mock_built_with_first_argument_type_being_string_test.rb
|
295
281
|
- test/acceptance/mock_test.rb
|
296
|
-
- test/acceptance/mock_with_initializer_block_test.rb
|
297
282
|
- test/acceptance/mocked_methods_dispatch_test.rb
|
298
283
|
- test/acceptance/multiple_expectations_failure_message_test.rb
|
284
|
+
- test/acceptance/multiple_yielding_test.rb
|
299
285
|
- test/acceptance/optional_parameters_test.rb
|
300
286
|
- test/acceptance/parameter_matcher_test.rb
|
301
287
|
- test/acceptance/partial_mocks_test.rb
|
@@ -341,6 +327,7 @@ files:
|
|
341
327
|
- test/acceptance/throw_test.rb
|
342
328
|
- test/acceptance/unexpected_invocation_test.rb
|
343
329
|
- test/acceptance/unstubbing_test.rb
|
330
|
+
- test/acceptance/yielding_test.rb
|
344
331
|
- test/assertions.rb
|
345
332
|
- test/deprecation_disabler.rb
|
346
333
|
- test/execution_point.rb
|
@@ -360,7 +347,6 @@ files:
|
|
360
347
|
- test/unit/cardinality_test.rb
|
361
348
|
- test/unit/central_test.rb
|
362
349
|
- test/unit/change_state_side_effect_test.rb
|
363
|
-
- test/unit/class_method_test.rb
|
364
350
|
- test/unit/class_methods_test.rb
|
365
351
|
- test/unit/configuration_test.rb
|
366
352
|
- test/unit/date_time_inspect_test.rb
|
@@ -370,12 +356,11 @@ files:
|
|
370
356
|
- test/unit/hash_inspect_test.rb
|
371
357
|
- test/unit/hooks_test.rb
|
372
358
|
- test/unit/in_state_ordering_constraint_test.rb
|
359
|
+
- test/unit/instance_method_test.rb
|
373
360
|
- test/unit/method_matcher_test.rb
|
374
361
|
- test/unit/mock_test.rb
|
375
362
|
- test/unit/mockery_test.rb
|
376
363
|
- test/unit/module_methods_test.rb
|
377
|
-
- test/unit/multiple_yields_test.rb
|
378
|
-
- test/unit/no_yields_test.rb
|
379
364
|
- test/unit/object_inspect_test.rb
|
380
365
|
- test/unit/object_methods_test.rb
|
381
366
|
- test/unit/parameter_matchers/all_of_test.rb
|
@@ -401,7 +386,6 @@ files:
|
|
401
386
|
- test/unit/return_values_test.rb
|
402
387
|
- test/unit/sequence_test.rb
|
403
388
|
- test/unit/single_return_value_test.rb
|
404
|
-
- test/unit/single_yield_test.rb
|
405
389
|
- test/unit/state_machine_test.rb
|
406
390
|
- test/unit/string_inspect_test.rb
|
407
391
|
- test/unit/thrower_test.rb
|
@@ -428,8 +412,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
428
412
|
- !ruby/object:Gem::Version
|
429
413
|
version: '0'
|
430
414
|
requirements: []
|
431
|
-
|
432
|
-
rubygems_version: 2.7.6
|
415
|
+
rubygems_version: 3.0.3
|
433
416
|
signing_key:
|
434
417
|
specification_version: 4
|
435
418
|
summary: Mocking and stubbing library
|