mocha 0.10.5 → 0.11.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.
- data/COPYING.rdoc +1 -1
- data/README.rdoc +6 -4
- data/RELEASE.rdoc +12 -0
- data/Rakefile +29 -60
- data/doc/Mocha.html +112 -0
- data/doc/Mocha/API.html +898 -0
- data/doc/Mocha/ClassMethods.html +246 -0
- data/doc/Mocha/Configuration.html +471 -0
- data/doc/Mocha/Expectation.html +2570 -0
- data/doc/Mocha/Mock.html +830 -0
- data/doc/Mocha/ObjectMethods.html +668 -0
- data/doc/Mocha/ParameterMatchers.html +2715 -0
- data/doc/Mocha/ParameterMatchers/AllOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/AnyOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/AnyParameters.html +136 -0
- data/doc/Mocha/ParameterMatchers/Anything.html +136 -0
- data/doc/Mocha/ParameterMatchers/Base.html +419 -0
- data/doc/Mocha/ParameterMatchers/Equals.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasEntries.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasEntry.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasKey.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasValue.html +137 -0
- data/doc/Mocha/ParameterMatchers/Includes.html +137 -0
- data/doc/Mocha/ParameterMatchers/InstanceOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/IsA.html +136 -0
- data/doc/Mocha/ParameterMatchers/KindOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/Not.html +137 -0
- data/doc/Mocha/ParameterMatchers/Optionally.html +136 -0
- data/doc/Mocha/ParameterMatchers/QueryStringMatches.html +136 -0
- data/doc/Mocha/ParameterMatchers/RegexpMatches.html +137 -0
- data/doc/Mocha/ParameterMatchers/RespondsWith.html +137 -0
- data/doc/Mocha/ParameterMatchers/YamlEquivalent.html +137 -0
- data/doc/Mocha/Sequence.html +133 -0
- data/doc/Mocha/StateMachine.html +510 -0
- data/doc/Mocha/StateMachine/State.html +125 -0
- data/doc/Mocha/StateMachine/StatePredicate.html +125 -0
- data/doc/Mocha/StubbingError.html +134 -0
- data/doc/Mocha/UnexpectedInvocation.html +124 -0
- data/doc/_index.html +481 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +55 -0
- data/doc/css/style.css +322 -0
- data/doc/file.COPYING.html +72 -0
- data/doc/file.MIT-LICENSE.html +86 -0
- data/doc/file.README.html +153 -0
- data/doc/file.RELEASE.html +933 -0
- data/doc/file.misc.html +108 -0
- data/doc/file.mocha.html +90 -0
- data/doc/file.stubba.html +129 -0
- data/doc/file_list.html +67 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +153 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +510 -0
- data/doc/top-level-namespace.html +105 -0
- data/lib/mocha/any_instance_method.rb +16 -11
- data/lib/mocha/api.rb +120 -106
- data/lib/mocha/argument_iterator.rb +6 -6
- data/lib/mocha/backtrace_filter.rb +1 -1
- data/lib/mocha/cardinality.rb +21 -21
- data/lib/mocha/central.rb +8 -8
- data/lib/mocha/change_state_side_effect.rb +5 -5
- data/lib/mocha/class_method.rb +14 -19
- data/lib/mocha/configuration.rb +47 -37
- data/lib/mocha/deprecation.rb +8 -8
- data/lib/mocha/exception_raiser.rb +7 -7
- data/lib/mocha/expectation.rb +173 -77
- data/lib/mocha/expectation_error.rb +2 -2
- data/lib/mocha/expectation_list.rb +11 -11
- data/lib/mocha/in_state_ordering_constraint.rb +5 -5
- data/lib/mocha/inspect.rb +8 -8
- data/lib/mocha/instance_method.rb +1 -17
- data/lib/mocha/integration.rb +9 -9
- data/lib/mocha/integration/mini_test/assertion_counter.rb +9 -9
- data/lib/mocha/integration/mini_test/exception_translation.rb +6 -6
- data/lib/mocha/integration/mini_test/version_13.rb +6 -6
- data/lib/mocha/integration/mini_test/version_140.rb +6 -6
- data/lib/mocha/integration/mini_test/version_141.rb +6 -6
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +7 -7
- data/lib/mocha/integration/mini_test/version_200.rb +7 -7
- data/lib/mocha/integration/test_unit/assertion_counter.rb +10 -10
- data/lib/mocha/integration/test_unit/gem_version_200.rb +6 -6
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +6 -6
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +6 -6
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +6 -6
- data/lib/mocha/is_a.rb +1 -1
- data/lib/mocha/logger.rb +6 -6
- data/lib/mocha/method_matcher.rb +7 -7
- data/lib/mocha/mock.rb +85 -48
- data/lib/mocha/mockery.rb +47 -33
- data/lib/mocha/module_method.rb +2 -2
- data/lib/mocha/multiple_yields.rb +9 -9
- data/lib/mocha/names.rb +18 -18
- data/lib/mocha/no_yields.rb +7 -7
- data/lib/mocha/object.rb +104 -75
- data/lib/mocha/parameter_matchers.rb +3 -3
- data/lib/mocha/parameter_matchers/all_of.rb +22 -12
- data/lib/mocha/parameter_matchers/any_of.rb +23 -12
- data/lib/mocha/parameter_matchers/any_parameters.rb +15 -8
- data/lib/mocha/parameter_matchers/anything.rb +20 -11
- data/lib/mocha/parameter_matchers/base.rb +35 -27
- data/lib/mocha/parameter_matchers/equals.rb +23 -12
- data/lib/mocha/parameter_matchers/has_entries.rb +22 -12
- data/lib/mocha/parameter_matchers/has_entry.rb +31 -13
- data/lib/mocha/parameter_matchers/has_key.rb +21 -11
- data/lib/mocha/parameter_matchers/has_value.rb +21 -11
- data/lib/mocha/parameter_matchers/includes.rb +15 -5
- data/lib/mocha/parameter_matchers/instance_of.rb +23 -12
- data/lib/mocha/parameter_matchers/is_a.rb +23 -12
- data/lib/mocha/parameter_matchers/kind_of.rb +23 -12
- data/lib/mocha/parameter_matchers/not.rb +22 -12
- data/lib/mocha/parameter_matchers/object.rb +5 -3
- data/lib/mocha/parameter_matchers/optionally.rb +24 -12
- data/lib/mocha/parameter_matchers/query_string.rb +14 -3
- data/lib/mocha/parameter_matchers/regexp_matches.rb +21 -11
- data/lib/mocha/parameter_matchers/responds_with.rb +17 -6
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +16 -6
- data/lib/mocha/parameters_matcher.rb +8 -8
- data/lib/mocha/pretty_parameters.rb +7 -7
- data/lib/mocha/return_values.rb +11 -11
- data/lib/mocha/sequence.rb +23 -14
- data/lib/mocha/single_return_value.rb +7 -7
- data/lib/mocha/single_yield.rb +9 -9
- data/lib/mocha/standalone.rb +1 -1
- data/lib/mocha/state_machine.rb +61 -46
- data/lib/mocha/stubbing_error.rb +8 -5
- data/lib/mocha/thrower.rb +2 -2
- data/lib/mocha/unexpected_invocation.rb +9 -6
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +10 -10
- data/lib/mocha_standalone.rb +1 -1
- data/mocha.gemspec +4 -7
- data/test/acceptance/acceptance_test_helper.rb +10 -10
- data/test/acceptance/api_test.rb +20 -20
- data/test/acceptance/bug_18914_test.rb +12 -12
- data/test/acceptance/bug_21465_test.rb +6 -6
- data/test/acceptance/bug_21563_test.rb +5 -5
- data/test/acceptance/exception_rescue_test.rb +1 -1
- data/test/acceptance/expected_invocation_count_test.rb +17 -17
- data/test/acceptance/failure_messages_test.rb +13 -13
- data/test/acceptance/minitest_test.rb +39 -39
- data/test/acceptance/mocha_example_test.rb +26 -26
- data/test/acceptance/mocha_test_result_test.rb +13 -13
- data/test/acceptance/mock_test.rb +5 -5
- data/test/acceptance/mock_with_initializer_block_test.rb +5 -5
- data/test/acceptance/mocked_methods_dispatch_test.rb +4 -4
- data/test/acceptance/multiple_expectations_failure_message_test.rb +2 -2
- data/test/acceptance/optional_parameters_test.rb +5 -5
- data/test/acceptance/parameter_matcher_test.rb +18 -18
- data/test/acceptance/partial_mocks_test.rb +9 -9
- data/test/acceptance/raise_exception_test.rb +1 -1
- data/test/acceptance/return_value_test.rb +5 -5
- data/test/acceptance/sequence_test.rb +29 -29
- data/test/acceptance/states_test.rb +17 -17
- data/test/acceptance/stub_any_instance_method_test.rb +13 -13
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +7 -7
- data/test/acceptance/stub_everything_test.rb +5 -5
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +1 -1
- data/test/acceptance/stub_module_method_test.rb +17 -17
- data/test/acceptance/stub_test.rb +5 -5
- data/test/acceptance/stubba_example_test.rb +24 -24
- data/test/acceptance/stubba_test_result_test.rb +11 -11
- data/test/acceptance/stubbing_error_backtrace_test.rb +6 -6
- data/test/acceptance/stubbing_frozen_object_test.rb +88 -0
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +9 -9
- data/test/acceptance/stubbing_nil_test.rb +59 -0
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +13 -13
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +15 -15
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +14 -14
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +13 -13
- data/test/acceptance/stubbing_non_public_class_method_test.rb +12 -12
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +12 -12
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +9 -9
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +35 -0
- data/test/acceptance/throw_test.rb +1 -1
- data/test/deprecation_disabler.rb +1 -1
- data/test/execution_point.rb +7 -7
- data/test/method_definer.rb +1 -1
- data/test/mini_test_result.rb +21 -21
- data/test/simple_counter.rb +5 -5
- data/test/test_helper.rb +1 -1
- data/test/test_runner.rb +22 -24
- data/test/test_unit_result.rb +20 -0
- data/test/unit/any_instance_method_test.rb +28 -32
- data/test/unit/array_inspect_test.rb +3 -3
- data/test/unit/backtrace_filter_test.rb +3 -3
- data/test/unit/cardinality_test.rb +12 -12
- data/test/unit/central_test.rb +18 -18
- data/test/unit/change_state_side_effect_test.rb +12 -12
- data/test/unit/class_method_test.rb +33 -91
- data/test/unit/date_time_inspect_test.rb +4 -4
- data/test/unit/exception_raiser_test.rb +5 -5
- data/test/unit/expectation_list_test.rb +7 -7
- data/test/unit/expectation_test.rb +66 -66
- data/test/unit/hash_inspect_test.rb +4 -4
- data/test/unit/in_state_ordering_constraint_test.rb +13 -13
- data/test/unit/method_matcher_test.rb +3 -3
- data/test/unit/mock_test.rb +40 -40
- data/test/unit/mockery_test.rb +25 -25
- data/test/unit/multiple_yields_test.rb +2 -2
- data/test/unit/no_yields_test.rb +2 -2
- data/test/unit/object_inspect_test.rb +4 -4
- data/test/unit/object_test.rb +15 -15
- data/test/unit/parameter_matchers/all_of_test.rb +6 -6
- data/test/unit/parameter_matchers/any_of_test.rb +6 -6
- data/test/unit/parameter_matchers/anything_test.rb +5 -5
- data/test/unit/parameter_matchers/has_entries_test.rb +10 -10
- data/test/unit/parameter_matchers/has_entry_test.rb +13 -13
- data/test/unit/parameter_matchers/has_key_test.rb +11 -11
- data/test/unit/parameter_matchers/has_value_test.rb +12 -12
- data/test/unit/parameter_matchers/includes_test.rb +4 -4
- data/test/unit/parameter_matchers/not_test.rb +6 -6
- data/test/unit/parameter_matchers/regexp_matches_test.rb +9 -9
- data/test/unit/parameter_matchers/responds_with_test.rb +6 -6
- data/test/unit/parameter_matchers/stub_matcher.rb +4 -4
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +6 -6
- data/test/unit/parameters_matcher_test.rb +16 -16
- data/test/unit/return_values_test.rb +5 -5
- data/test/unit/sequence_test.rb +10 -10
- data/test/unit/single_return_value_test.rb +3 -3
- data/test/unit/single_yield_test.rb +2 -2
- data/test/unit/state_machine_test.rb +19 -19
- data/test/unit/string_inspect_test.rb +2 -2
- data/test/unit/thrower_test.rb +1 -1
- data/test/unit/yield_parameters_test.rb +11 -11
- metadata +113 -101
@@ -1,28 +1,42 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
# :call-seq: has_entry(key, value) -> parameter_matcher
|
8
|
-
# has_entry(key => value) -> parameter_matcher
|
9
|
-
#
|
10
7
|
# Matches +Hash+ containing entry with +key+ and +value+.
|
8
|
+
#
|
9
|
+
# @overload def has_entry(key, value)
|
10
|
+
# @param [Object] key key for entry.
|
11
|
+
# @param [Object] value value for entry.
|
12
|
+
# @overload def has_entry(single_entry_hash)
|
13
|
+
# @param [Hash] single_entry_hash +Hash+ with single entry.
|
14
|
+
# @raise [ArgumentError] if +single_entry_hash+ does not contain exactly one entry.
|
15
|
+
#
|
16
|
+
# @return [HasEntry] parameter matcher.
|
17
|
+
#
|
18
|
+
# @see Expectation#with
|
19
|
+
#
|
20
|
+
# @example Actual parameter contains expected entry supplied as key and value.
|
11
21
|
# object = mock()
|
12
22
|
# object.expects(:method_1).with(has_entry('key_1', 1))
|
13
23
|
# object.method_1('key_1' => 1, 'key_2' => 2)
|
14
24
|
# # no error raised
|
15
25
|
#
|
26
|
+
# @example Actual parameter contains expected entry supplied as +Hash+ entry.
|
16
27
|
# object = mock()
|
17
28
|
# object.expects(:method_1).with(has_entry('key_1' => 1))
|
18
29
|
# object.method_1('key_1' => 1, 'key_2' => 2)
|
19
30
|
# # no error raised
|
20
31
|
#
|
32
|
+
# @example Actual parameter does not contain expected entry supplied as key and value.
|
21
33
|
# object = mock()
|
22
34
|
# object.expects(:method_1).with(has_entry('key_1', 1))
|
23
35
|
# object.method_1('key_1' => 2, 'key_2' => 1)
|
24
36
|
# # error raised, because method_1 was not called with Hash containing entry: 'key_1' => 1
|
25
37
|
#
|
38
|
+
# @example Actual parameter does not contain expected entry supplied as +Hash+ entry.
|
39
|
+
#
|
26
40
|
# object = mock()
|
27
41
|
# object.expects(:method_1).with(has_entry('key_1' => 1))
|
28
42
|
# object.method_1('key_1' => 2, 'key_2' => 1)
|
@@ -41,26 +55,30 @@ module Mocha
|
|
41
55
|
end
|
42
56
|
HasEntry.new(key, value)
|
43
57
|
end
|
44
|
-
|
45
|
-
|
46
|
-
|
58
|
+
|
59
|
+
# Parameter matcher which matches when actual parameter contains expected +Hash+ entry.
|
60
|
+
class HasEntry < Base
|
61
|
+
|
62
|
+
# @private
|
47
63
|
def initialize(key, value)
|
48
64
|
@key, @value = key, value
|
49
65
|
end
|
50
|
-
|
66
|
+
|
67
|
+
# @private
|
51
68
|
def matches?(available_parameters)
|
52
69
|
parameter = available_parameters.shift
|
53
70
|
return false unless parameter.respond_to?(:keys) && parameter.respond_to?(:[])
|
54
71
|
matching_keys = parameter.keys.select { |key| @key.to_matcher.matches?([key]) }
|
55
72
|
matching_keys.any? { |key| @value.to_matcher.matches?([parameter[key]]) }
|
56
73
|
end
|
57
|
-
|
74
|
+
|
75
|
+
# @private
|
58
76
|
def mocha_inspect
|
59
77
|
"has_entry(#{@key.mocha_inspect} => #{@value.mocha_inspect})"
|
60
78
|
end
|
61
|
-
|
79
|
+
|
62
80
|
end
|
63
|
-
|
81
|
+
|
64
82
|
end
|
65
|
-
|
66
|
-
end
|
83
|
+
|
84
|
+
end
|
@@ -1,17 +1,23 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
# :call-seq: has_key(key) -> parameter_matcher
|
8
|
-
#
|
9
7
|
# Matches +Hash+ containing +key+.
|
8
|
+
#
|
9
|
+
# @param [Object] key expected key.
|
10
|
+
# @return [HasKey] parameter matcher.
|
11
|
+
#
|
12
|
+
# @see Expectation#with
|
13
|
+
#
|
14
|
+
# @example Actual parameter contains entry with expected key.
|
10
15
|
# object = mock()
|
11
16
|
# object.expects(:method_1).with(has_key('key_1'))
|
12
17
|
# object.method_1('key_1' => 1, 'key_2' => 2)
|
13
18
|
# # no error raised
|
14
19
|
#
|
20
|
+
# @example Actual parameter does not contain entry with expected key.
|
15
21
|
# object = mock()
|
16
22
|
# object.expects(:method_1).with(has_key('key_1'))
|
17
23
|
# object.method_1('key_2' => 2)
|
@@ -20,24 +26,28 @@ module Mocha
|
|
20
26
|
HasKey.new(key)
|
21
27
|
end
|
22
28
|
|
23
|
-
|
24
|
-
|
29
|
+
# Parameter matcher which matches when actual parameter contains +Hash+ entry with expected key.
|
30
|
+
class HasKey < Base
|
31
|
+
|
32
|
+
# @private
|
25
33
|
def initialize(key)
|
26
34
|
@key = key
|
27
35
|
end
|
28
|
-
|
36
|
+
|
37
|
+
# @private
|
29
38
|
def matches?(available_parameters)
|
30
39
|
parameter = available_parameters.shift
|
31
40
|
return false unless parameter.respond_to?(:keys)
|
32
41
|
parameter.keys.any? { |key| @key.to_matcher.matches?([key]) }
|
33
42
|
end
|
34
|
-
|
43
|
+
|
44
|
+
# @private
|
35
45
|
def mocha_inspect
|
36
46
|
"has_key(#{@key.mocha_inspect})"
|
37
47
|
end
|
38
|
-
|
48
|
+
|
39
49
|
end
|
40
|
-
|
50
|
+
|
41
51
|
end
|
42
|
-
|
43
|
-
end
|
52
|
+
|
53
|
+
end
|
@@ -1,17 +1,23 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
# :call-seq: has_value(value) -> parameter_matcher
|
8
|
-
#
|
9
7
|
# Matches +Hash+ containing +value+.
|
8
|
+
#
|
9
|
+
# @param [Object] value expected value.
|
10
|
+
# @return [HasValue] parameter matcher.
|
11
|
+
#
|
12
|
+
# @see Expectation#with
|
13
|
+
#
|
14
|
+
# @example Actual parameter contains entry with expected value.
|
10
15
|
# object = mock()
|
11
16
|
# object.expects(:method_1).with(has_value(1))
|
12
17
|
# object.method_1('key_1' => 1, 'key_2' => 2)
|
13
18
|
# # no error raised
|
14
19
|
#
|
20
|
+
# @example Actual parameter does not contain entry with expected value.
|
15
21
|
# object = mock()
|
16
22
|
# object.expects(:method_1).with(has_value(1))
|
17
23
|
# object.method_1('key_2' => 2)
|
@@ -20,24 +26,28 @@ module Mocha
|
|
20
26
|
HasValue.new(value)
|
21
27
|
end
|
22
28
|
|
23
|
-
|
24
|
-
|
29
|
+
# Parameter matcher which matches when actual parameter contains +Hash+ entry with expected value.
|
30
|
+
class HasValue < Base
|
31
|
+
|
32
|
+
# @private
|
25
33
|
def initialize(value)
|
26
34
|
@value = value
|
27
35
|
end
|
28
|
-
|
36
|
+
|
37
|
+
# @private
|
29
38
|
def matches?(available_parameters)
|
30
39
|
parameter = available_parameters.shift
|
31
40
|
return false unless parameter.respond_to?(:values)
|
32
41
|
parameter.values.any? { |value| @value.to_matcher.matches?([value]) }
|
33
42
|
end
|
34
|
-
|
43
|
+
|
44
|
+
# @private
|
35
45
|
def mocha_inspect
|
36
46
|
"has_value(#{@value.mocha_inspect})"
|
37
47
|
end
|
38
|
-
|
48
|
+
|
39
49
|
end
|
40
|
-
|
50
|
+
|
41
51
|
end
|
42
|
-
|
43
|
-
end
|
52
|
+
|
53
|
+
end
|
@@ -1,35 +1,45 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
#
|
7
|
+
# Matches any object that responds with +true+ to +include?(item)+.
|
8
|
+
#
|
9
|
+
# @param [Object] item expected item.
|
10
|
+
# @return [Includes] parameter matcher.
|
8
11
|
#
|
9
|
-
#
|
12
|
+
# @see Expectation#with
|
13
|
+
#
|
14
|
+
# @example Actual parameter includes item.
|
10
15
|
# object = mock()
|
11
16
|
# object.expects(:method_1).with(includes('foo'))
|
12
17
|
# object.method_1(['foo', 'bar'])
|
13
18
|
# # no error raised
|
14
19
|
#
|
20
|
+
# @example Actual parameter does not include item.
|
15
21
|
# object.method_1(['baz'])
|
16
22
|
# # error raised, because ['baz'] does not include 'foo'.
|
17
23
|
def includes(item)
|
18
24
|
Includes.new(item)
|
19
25
|
end
|
20
26
|
|
21
|
-
|
27
|
+
# Parameter matcher which matches when actual parameter includes expected value.
|
28
|
+
class Includes < Base
|
22
29
|
|
30
|
+
# @private
|
23
31
|
def initialize(item)
|
24
32
|
@item = item
|
25
33
|
end
|
26
34
|
|
35
|
+
# @private
|
27
36
|
def matches?(available_parameters)
|
28
37
|
parameter = available_parameters.shift
|
29
38
|
return false unless parameter.respond_to?(:include?)
|
30
39
|
return parameter.include?(@item)
|
31
40
|
end
|
32
41
|
|
42
|
+
# @private
|
33
43
|
def mocha_inspect
|
34
44
|
"includes(#{@item.mocha_inspect})"
|
35
45
|
end
|
@@ -37,5 +47,5 @@ module Mocha
|
|
37
47
|
end
|
38
48
|
|
39
49
|
end
|
40
|
-
|
50
|
+
|
41
51
|
end
|
@@ -1,17 +1,24 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
# :call-seq: instance_of(klass) -> parameter_matcher
|
8
|
-
#
|
9
7
|
# Matches any object that is an instance of +klass+
|
8
|
+
#
|
9
|
+
# @param [Class] klass expected class.
|
10
|
+
# @return [InstanceOf] parameter matcher.
|
11
|
+
#
|
12
|
+
# @see Expectation#with
|
13
|
+
# @see Kernel#instance_of?
|
14
|
+
#
|
15
|
+
# @example Actual parameter is an instance of +String+.
|
10
16
|
# object = mock()
|
11
17
|
# object.expects(:method_1).with(instance_of(String))
|
12
18
|
# object.method_1('string')
|
13
19
|
# # no error raised
|
14
20
|
#
|
21
|
+
# @example Actual parameter is not an instance of +String+.
|
15
22
|
# object = mock()
|
16
23
|
# object.expects(:method_1).with(instance_of(String))
|
17
24
|
# object.method_1(99)
|
@@ -19,24 +26,28 @@ module Mocha
|
|
19
26
|
def instance_of(klass)
|
20
27
|
InstanceOf.new(klass)
|
21
28
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
29
|
+
|
30
|
+
# Parameter matcher which matches when actual parameter is an instance of the specified class.
|
31
|
+
class InstanceOf < Base
|
32
|
+
|
33
|
+
# @private
|
25
34
|
def initialize(klass)
|
26
35
|
@klass = klass
|
27
36
|
end
|
28
|
-
|
37
|
+
|
38
|
+
# @private
|
29
39
|
def matches?(available_parameters)
|
30
40
|
parameter = available_parameters.shift
|
31
41
|
parameter.instance_of?(@klass)
|
32
42
|
end
|
33
|
-
|
43
|
+
|
44
|
+
# @private
|
34
45
|
def mocha_inspect
|
35
46
|
"instance_of(#{@klass.mocha_inspect})"
|
36
47
|
end
|
37
|
-
|
48
|
+
|
38
49
|
end
|
39
|
-
|
50
|
+
|
40
51
|
end
|
41
|
-
|
42
|
-
end
|
52
|
+
|
53
|
+
end
|
@@ -1,17 +1,24 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
#
|
7
|
+
# Matches any object that is a +klass+.
|
8
|
+
#
|
9
|
+
# @param [Class] klass expected class.
|
10
|
+
# @return [IsA] parameter matcher.
|
11
|
+
#
|
12
|
+
# @see Expectation#with
|
13
|
+
# @see Kernel#is_a?
|
8
14
|
#
|
9
|
-
#
|
15
|
+
# @example Actual parameter is a +Integer+.
|
10
16
|
# object = mock()
|
11
17
|
# object.expects(:method_1).with(is_a(Integer))
|
12
18
|
# object.method_1(99)
|
13
19
|
# # no error raised
|
14
20
|
#
|
21
|
+
# @example Actual parameter is not a +Integer+.
|
15
22
|
# object = mock()
|
16
23
|
# object.expects(:method_1).with(is_a(Integer))
|
17
24
|
# object.method_1('string')
|
@@ -19,24 +26,28 @@ module Mocha
|
|
19
26
|
def is_a(klass)
|
20
27
|
IsA.new(klass)
|
21
28
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
29
|
+
|
30
|
+
# Parameter matcher which matches when actual parameter is a specific class.
|
31
|
+
class IsA < Base
|
32
|
+
|
33
|
+
# @private
|
25
34
|
def initialize(klass)
|
26
35
|
@klass = klass
|
27
36
|
end
|
28
|
-
|
37
|
+
|
38
|
+
# @private
|
29
39
|
def matches?(available_parameters)
|
30
40
|
parameter = available_parameters.shift
|
31
41
|
parameter.is_a?(@klass)
|
32
42
|
end
|
33
|
-
|
43
|
+
|
44
|
+
# @private
|
34
45
|
def mocha_inspect
|
35
46
|
"is_a(#{@klass.mocha_inspect})"
|
36
47
|
end
|
37
|
-
|
48
|
+
|
38
49
|
end
|
39
|
-
|
50
|
+
|
40
51
|
end
|
41
|
-
|
42
|
-
end
|
52
|
+
|
53
|
+
end
|
@@ -1,17 +1,24 @@
|
|
1
1
|
require 'mocha/parameter_matchers/base'
|
2
2
|
|
3
3
|
module Mocha
|
4
|
-
|
4
|
+
|
5
5
|
module ParameterMatchers
|
6
6
|
|
7
|
-
#
|
7
|
+
# Matches any +Object+ that is a kind of +klass+.
|
8
|
+
#
|
9
|
+
# @param [Class] klass expected class.
|
10
|
+
# @return [KindOf] parameter matcher.
|
11
|
+
#
|
12
|
+
# @see Expectation#with
|
13
|
+
# @see Kernel#kind_of?
|
8
14
|
#
|
9
|
-
#
|
15
|
+
# @example Actual parameter is a kind of +Integer+.
|
10
16
|
# object = mock()
|
11
17
|
# object.expects(:method_1).with(kind_of(Integer))
|
12
18
|
# object.method_1(99)
|
13
19
|
# # no error raised
|
14
20
|
#
|
21
|
+
# @example Actual parameter is not a kind of +Integer+.
|
15
22
|
# object = mock()
|
16
23
|
# object.expects(:method_1).with(kind_of(Integer))
|
17
24
|
# object.method_1('string')
|
@@ -19,24 +26,28 @@ module Mocha
|
|
19
26
|
def kind_of(klass)
|
20
27
|
KindOf.new(klass)
|
21
28
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
29
|
+
|
30
|
+
# Parameter matcher which matches when actual parameter is a kind of specified class.
|
31
|
+
class KindOf < Base
|
32
|
+
|
33
|
+
# @private
|
25
34
|
def initialize(klass)
|
26
35
|
@klass = klass
|
27
36
|
end
|
28
|
-
|
37
|
+
|
38
|
+
# @private
|
29
39
|
def matches?(available_parameters)
|
30
40
|
parameter = available_parameters.shift
|
31
41
|
parameter.kind_of?(@klass)
|
32
42
|
end
|
33
|
-
|
43
|
+
|
44
|
+
# @private
|
34
45
|
def mocha_inspect
|
35
46
|
"kind_of(#{@klass.mocha_inspect})"
|
36
47
|
end
|
37
|
-
|
48
|
+
|
38
49
|
end
|
39
|
-
|
50
|
+
|
40
51
|
end
|
41
|
-
|
42
|
-
end
|
52
|
+
|
53
|
+
end
|