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.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +65 -0
- data/.rubocop_todo.yml +27 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +4 -9
- data/Gemfile +29 -0
- data/README.md +110 -106
- data/RELEASE.md +306 -1
- data/Rakefile +52 -45
- data/gemfiles/Gemfile.minitest.latest +1 -0
- data/gemfiles/Gemfile.test-unit.latest +2 -5
- data/lib/mocha/any_instance_method.rb +9 -62
- data/lib/mocha/api.rb +84 -68
- data/lib/mocha/argument_iterator.rb +4 -8
- data/lib/mocha/backtrace_filter.rb +1 -5
- data/lib/mocha/block_matcher.rb +31 -0
- data/lib/mocha/cardinality.rb +60 -49
- data/lib/mocha/central.rb +21 -12
- data/lib/mocha/change_state_side_effect.rb +0 -4
- data/lib/mocha/class_methods.rb +19 -21
- data/lib/mocha/configuration.rb +312 -47
- data/lib/mocha/debug.rb +3 -2
- data/lib/mocha/deprecation.rb +8 -11
- data/lib/mocha/detection/mini_test.rb +0 -2
- data/lib/mocha/detection/test_unit.rb +3 -5
- data/lib/mocha/error_with_filtered_backtrace.rb +13 -0
- data/lib/mocha/exception_raiser.rb +4 -6
- data/lib/mocha/expectation.rb +186 -95
- data/lib/mocha/expectation_error.rb +1 -1
- data/lib/mocha/expectation_error_factory.rb +0 -1
- data/lib/mocha/expectation_list.rb +7 -11
- data/lib/mocha/hooks.rb +1 -3
- data/lib/mocha/in_state_ordering_constraint.rb +0 -4
- data/lib/mocha/inspect.rb +30 -38
- data/lib/mocha/instance_method.rb +11 -8
- data/lib/mocha/integration/mini_test/adapter.rb +2 -4
- data/lib/mocha/integration/mini_test/exception_translation.rb +1 -1
- data/lib/mocha/integration/mini_test.rb +10 -31
- data/lib/mocha/integration/monkey_patcher.rb +5 -7
- data/lib/mocha/integration/test_unit/adapter.rb +5 -6
- data/lib/mocha/integration/test_unit.rb +10 -26
- data/lib/mocha/invocation.rb +73 -0
- data/lib/mocha/is_a.rb +0 -2
- data/lib/mocha/logger.rb +0 -4
- data/lib/mocha/macos_version.rb +5 -0
- data/lib/mocha/method_matcher.rb +1 -5
- data/lib/mocha/minitest.rb +6 -0
- data/lib/mocha/mock.rb +99 -51
- data/lib/mocha/mockery.rb +70 -99
- data/lib/mocha/names.rb +2 -12
- data/lib/mocha/not_initialized_error.rb +7 -0
- data/lib/mocha/object_methods.rb +25 -31
- data/lib/mocha/parameter_matchers/all_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_of.rb +2 -8
- data/lib/mocha/parameter_matchers/any_parameters.rb +3 -9
- data/lib/mocha/parameter_matchers/anything.rb +2 -8
- data/lib/mocha/parameter_matchers/base.rb +7 -13
- data/lib/mocha/parameter_matchers/equals.rb +0 -6
- data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +14 -15
- data/lib/mocha/parameter_matchers/has_entries.rb +2 -7
- data/lib/mocha/parameter_matchers/has_entry.rb +26 -21
- data/lib/mocha/parameter_matchers/has_key.rb +2 -7
- data/lib/mocha/parameter_matchers/has_keys.rb +53 -0
- data/lib/mocha/parameter_matchers/has_value.rb +2 -7
- data/lib/mocha/parameter_matchers/includes.rb +6 -7
- data/lib/mocha/parameter_matchers/instance_methods.rb +27 -0
- data/lib/mocha/parameter_matchers/instance_of.rb +0 -6
- data/lib/mocha/parameter_matchers/is_a.rb +2 -7
- data/lib/mocha/parameter_matchers/kind_of.rb +2 -6
- data/lib/mocha/parameter_matchers/not.rb +2 -7
- data/lib/mocha/parameter_matchers/optionally.rb +4 -10
- data/lib/mocha/parameter_matchers/positional_or_keyword_hash.rb +64 -0
- data/lib/mocha/parameter_matchers/regexp_matches.rb +0 -6
- data/lib/mocha/parameter_matchers/responds_with.rb +3 -8
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +2 -6
- data/lib/mocha/parameter_matchers.rb +3 -4
- data/lib/mocha/parameters_matcher.rb +8 -11
- data/lib/mocha/raised_exception.rb +11 -0
- data/lib/mocha/receivers.rb +10 -14
- data/lib/mocha/return_values.rb +4 -8
- data/lib/mocha/ruby_version.rb +1 -2
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/single_return_value.rb +2 -5
- data/lib/mocha/state_machine.rb +33 -46
- data/lib/mocha/stubbed_method.rb +88 -0
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +5 -2
- data/lib/mocha/thrower.rb +4 -6
- data/lib/mocha/thrown_object.rb +12 -0
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +7 -17
- data/mocha.gemspec +14 -65
- data/yard-templates/default/layout/html/google_analytics.erb +6 -9
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +26 -266
- data/bin/build-matrix +0 -70
- data/gemfiles/Gemfile.minitest.1.3.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.0 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.1 +0 -7
- data/gemfiles/Gemfile.minitest.1.4.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.0.1 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.0 +0 -7
- data/gemfiles/Gemfile.minitest.2.11.2 +0 -7
- data/gemfiles/Gemfile.minitest.2.3.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.0 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.1 +0 -7
- data/gemfiles/Gemfile.test-unit.2.0.3 +0 -7
- data/init.rb +0 -3
- data/lib/mocha/class_method.rb +0 -119
- data/lib/mocha/integration/mini_test/nothing.rb +0 -19
- data/lib/mocha/integration/mini_test/version_13.rb +0 -51
- data/lib/mocha/integration/mini_test/version_140.rb +0 -51
- data/lib/mocha/integration/mini_test/version_141.rb +0 -62
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +0 -62
- data/lib/mocha/integration/mini_test/version_200.rb +0 -63
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +0 -63
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +0 -67
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +0 -70
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +0 -65
- data/lib/mocha/integration/test_unit/gem_version_200.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +0 -59
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +0 -65
- data/lib/mocha/integration/test_unit/nothing.rb +0 -19
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -58
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +0 -60
- data/lib/mocha/integration.rb +0 -14
- data/lib/mocha/mini_test.rb +0 -3
- data/lib/mocha/module_method.rb +0 -16
- data/lib/mocha/module_methods.rb +0 -14
- data/lib/mocha/multiple_yields.rb +0 -20
- data/lib/mocha/no_yields.rb +0 -11
- data/lib/mocha/parameter_matchers/object.rb +0 -17
- data/lib/mocha/pretty_parameters.rb +0 -28
- data/lib/mocha/setup.rb +0 -9
- data/lib/mocha/single_yield.rb +0 -18
- data/lib/mocha/standalone.rb +0 -4
- data/lib/mocha/unexpected_invocation.rb +0 -26
- data/lib/mocha_standalone.rb +0 -4
- data/test/acceptance/acceptance_test_helper.rb +0 -41
- data/test/acceptance/bug_18914_test.rb +0 -43
- data/test/acceptance/bug_21465_test.rb +0 -34
- data/test/acceptance/bug_21563_test.rb +0 -25
- data/test/acceptance/exception_rescue_test.rb +0 -55
- data/test/acceptance/expectations_on_multiple_methods_test.rb +0 -55
- data/test/acceptance/expected_invocation_count_test.rb +0 -232
- data/test/acceptance/failure_messages_test.rb +0 -64
- data/test/acceptance/issue_272_test.rb +0 -52
- data/test/acceptance/issue_65_test.rb +0 -63
- data/test/acceptance/issue_70_test.rb +0 -55
- data/test/acceptance/mocha_example_test.rb +0 -98
- data/test/acceptance/mocha_test_result_test.rb +0 -84
- data/test/acceptance/mock_test.rb +0 -100
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
- data/test/acceptance/optional_parameters_test.rb +0 -70
- data/test/acceptance/parameter_matcher_test.rb +0 -337
- data/test/acceptance/partial_mocks_test.rb +0 -47
- data/test/acceptance/prepend_test.rb +0 -89
- data/test/acceptance/raise_exception_test.rb +0 -39
- data/test/acceptance/return_value_test.rb +0 -52
- data/test/acceptance/sequence_test.rb +0 -192
- data/test/acceptance/states_test.rb +0 -70
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
- data/test/acceptance/stub_any_instance_method_test.rb +0 -280
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
- data/test/acceptance/stub_everything_test.rb +0 -56
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -78
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -39
- data/test/acceptance/stub_module_method_test.rb +0 -163
- data/test/acceptance/stub_test.rb +0 -52
- data/test/acceptance/stubba_example_test.rb +0 -102
- data/test/acceptance/stubba_test_result_test.rb +0 -66
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
- data/test/acceptance/stubbing_nil_test.rb +0 -61
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
- data/test/acceptance/throw_test.rb +0 -45
- data/test/acceptance/unexpected_invocation_test.rb +0 -25
- data/test/acceptance/unstubbing_test.rb +0 -168
- data/test/assertions.rb +0 -8
- data/test/deprecation_disabler.rb +0 -15
- data/test/execution_point.rb +0 -36
- data/test/integration/mini_test_test.rb +0 -8
- data/test/integration/shared_tests.rb +0 -174
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -24
- data/test/mini_test_result.rb +0 -90
- data/test/minitest_result.rb +0 -49
- data/test/simple_counter.rb +0 -13
- data/test/test_helper.rb +0 -50
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -20
- data/test/unit/any_instance_method_test.rb +0 -134
- data/test/unit/array_inspect_test.rb +0 -16
- data/test/unit/backtrace_filter_test.rb +0 -19
- data/test/unit/cardinality_test.rb +0 -56
- data/test/unit/central_test.rb +0 -100
- data/test/unit/change_state_side_effect_test.rb +0 -41
- data/test/unit/class_method_test.rb +0 -225
- data/test/unit/class_methods_test.rb +0 -40
- data/test/unit/configuration_test.rb +0 -38
- data/test/unit/date_time_inspect_test.rb +0 -21
- data/test/unit/exception_raiser_test.rb +0 -42
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -497
- data/test/unit/hash_inspect_test.rb +0 -16
- data/test/unit/hooks_test.rb +0 -29
- data/test/unit/in_state_ordering_constraint_test.rb +0 -43
- data/test/unit/method_matcher_test.rb +0 -28
- data/test/unit/mock_test.rb +0 -342
- data/test/unit/mockery_test.rb +0 -151
- data/test/unit/module_methods_test.rb +0 -19
- data/test/unit/multiple_yields_test.rb +0 -18
- data/test/unit/no_yields_test.rb +0 -18
- data/test/unit/object_inspect_test.rb +0 -39
- data/test/unit/object_methods_test.rb +0 -46
- data/test/unit/parameter_matchers/all_of_test.rb +0 -26
- data/test/unit/parameter_matchers/any_of_test.rb +0 -26
- data/test/unit/parameter_matchers/anything_test.rb +0 -21
- data/test/unit/parameter_matchers/equals_test.rb +0 -25
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
- data/test/unit/parameter_matchers/has_key_test.rb +0 -55
- data/test/unit/parameter_matchers/has_value_test.rb +0 -57
- data/test/unit/parameter_matchers/includes_test.rb +0 -102
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
- data/test/unit/parameter_matchers/is_a_test.rb +0 -25
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
- data/test/unit/parameter_matchers/not_test.rb +0 -26
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
- data/test/unit/parameters_matcher_test.rb +0 -121
- data/test/unit/receivers_test.rb +0 -66
- data/test/unit/return_values_test.rb +0 -63
- data/test/unit/sequence_test.rb +0 -104
- data/test/unit/single_return_value_test.rb +0 -14
- data/test/unit/single_yield_test.rb +0 -18
- data/test/unit/state_machine_test.rb +0 -98
- data/test/unit/string_inspect_test.rb +0 -11
- data/test/unit/thrower_test.rb +0 -20
- data/test/unit/yield_parameters_test.rb +0 -93
data/test/unit/mock_test.rb
DELETED
@@ -1,342 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/ruby_version'
|
3
|
-
require 'mocha/mock'
|
4
|
-
require 'mocha/expectation_error_factory'
|
5
|
-
require 'set'
|
6
|
-
require 'simple_counter'
|
7
|
-
|
8
|
-
class MockTest < Mocha::TestCase
|
9
|
-
|
10
|
-
include Mocha
|
11
|
-
|
12
|
-
def test_should_set_single_expectation
|
13
|
-
mock = build_mock
|
14
|
-
mock.expects(:method1).returns(1)
|
15
|
-
assert_nothing_raised(ExpectationErrorFactory.exception_class) do
|
16
|
-
assert_equal 1, mock.method1
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_build_and_store_expectations
|
21
|
-
mock = build_mock
|
22
|
-
expectation = mock.expects(:method1)
|
23
|
-
assert_not_nil expectation
|
24
|
-
assert_equal [expectation], mock.__expectations__.to_a
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_not_stub_everything_by_default
|
28
|
-
mock = build_mock
|
29
|
-
assert_equal false, mock.everything_stubbed
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_stub_everything
|
33
|
-
mock = build_mock
|
34
|
-
mock.stub_everything
|
35
|
-
assert_equal true, mock.everything_stubbed
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_be_able_to_extend_mock_object_with_module
|
39
|
-
mock = build_mock
|
40
|
-
assert_nothing_raised(ExpectationErrorFactory.exception_class) { mock.extend(Module.new) }
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_be_equal
|
44
|
-
mock = build_mock
|
45
|
-
assert_equal true, mock.eql?(mock)
|
46
|
-
end
|
47
|
-
|
48
|
-
if PRE_RUBY_V19
|
49
|
-
OBJECT_METHODS = STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS.reject { |m| m =~ /^__.*__$/ || ["method_missing", "singleton_method_undefined", "initialize"].include?(m)}
|
50
|
-
else
|
51
|
-
OBJECT_METHODS = STANDARD_OBJECT_PUBLIC_INSTANCE_METHODS.reject { |m| m =~ /^__.*__$/ || [:object_id, :method_missing, :singleton_method_undefined, :initialize, :String, :singleton_method_added].include?(m) }
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_should_be_able_to_mock_standard_object_methods
|
55
|
-
mock = build_mock
|
56
|
-
OBJECT_METHODS.each { |method| mock.__expects__(method.to_sym).returns(method) }
|
57
|
-
OBJECT_METHODS.each { |method| assert_equal method, mock.__send__(method.to_sym) }
|
58
|
-
assert mock.__verified__?
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_be_able_to_stub_standard_object_methods
|
62
|
-
mock = build_mock
|
63
|
-
OBJECT_METHODS.each { |method| mock.__stubs__(method.to_sym).returns(method) }
|
64
|
-
OBJECT_METHODS.each { |method| assert_equal method, mock.__send__(method.to_sym) }
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_should_create_and_add_expectations
|
68
|
-
mock = build_mock
|
69
|
-
expectation1 = mock.expects(:method1)
|
70
|
-
expectation2 = mock.expects(:method2)
|
71
|
-
assert_equal [expectation1, expectation2].to_set, mock.__expectations__.to_set
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_should_pass_backtrace_into_expectation
|
75
|
-
mock = build_mock
|
76
|
-
backtrace = Object.new
|
77
|
-
expectation = mock.expects(:method1, backtrace)
|
78
|
-
assert_equal backtrace, expectation.backtrace
|
79
|
-
end
|
80
|
-
|
81
|
-
def test_should_pass_backtrace_into_stub
|
82
|
-
mock = build_mock
|
83
|
-
backtrace = Object.new
|
84
|
-
stub = mock.stubs(:method1, backtrace)
|
85
|
-
assert_equal backtrace, stub.backtrace
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_should_create_and_add_stubs
|
89
|
-
mock = build_mock
|
90
|
-
stub1 = mock.stubs(:method1)
|
91
|
-
stub2 = mock.stubs(:method2)
|
92
|
-
assert_equal [stub1, stub2].to_set, mock.__expectations__.to_set
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_should_invoke_expectation_and_return_result
|
96
|
-
mock = build_mock
|
97
|
-
mock.expects(:my_method).returns(:result)
|
98
|
-
result = mock.my_method
|
99
|
-
assert_equal :result, result
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_should_not_raise_error_if_stubbing_everything
|
103
|
-
mock = build_mock
|
104
|
-
mock.stub_everything
|
105
|
-
result = nil
|
106
|
-
assert_nothing_raised(ExpectationErrorFactory.exception_class) do
|
107
|
-
result = mock.unexpected_method
|
108
|
-
end
|
109
|
-
assert_nil result
|
110
|
-
end
|
111
|
-
|
112
|
-
def test_should_raise_assertion_error_for_unexpected_method_call
|
113
|
-
mock = build_mock
|
114
|
-
error = assert_raise(ExpectationErrorFactory.exception_class) do
|
115
|
-
mock.unexpected_method_called(:my_method, :argument1, :argument2)
|
116
|
-
end
|
117
|
-
assert_match(/unexpected invocation/, error.message)
|
118
|
-
assert_match(/my_method/, error.message)
|
119
|
-
assert_match(/argument1/, error.message)
|
120
|
-
assert_match(/argument2/, error.message)
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_should_not_verify_successfully_because_not_all_expectations_have_been_satisfied
|
124
|
-
mock = build_mock
|
125
|
-
mock.expects(:method1)
|
126
|
-
mock.expects(:method2)
|
127
|
-
mock.method1
|
128
|
-
assert !mock.__verified__?
|
129
|
-
end
|
130
|
-
|
131
|
-
def test_should_increment_assertion_counter_for_every_verified_expectation
|
132
|
-
mock = build_mock
|
133
|
-
|
134
|
-
mock.expects(:method1)
|
135
|
-
mock.method1
|
136
|
-
|
137
|
-
mock.expects(:method2)
|
138
|
-
mock.method2
|
139
|
-
|
140
|
-
assertion_counter = SimpleCounter.new
|
141
|
-
|
142
|
-
mock.__verified__?(assertion_counter)
|
143
|
-
|
144
|
-
assert_equal 2, assertion_counter.count
|
145
|
-
end
|
146
|
-
|
147
|
-
def test_should_yield_supplied_parameters_to_block
|
148
|
-
mock = build_mock
|
149
|
-
parameters_for_yield = [1, 2, 3]
|
150
|
-
mock.expects(:method1).yields(*parameters_for_yield)
|
151
|
-
yielded_parameters = nil
|
152
|
-
mock.method1() { |*parameters| yielded_parameters = parameters }
|
153
|
-
assert_equal parameters_for_yield, yielded_parameters
|
154
|
-
end
|
155
|
-
|
156
|
-
def test_should_set_up_multiple_expectations_with_return_values
|
157
|
-
mock = build_mock
|
158
|
-
mock.expects(:method1 => :result1, :method2 => :result2)
|
159
|
-
assert_equal :result1, mock.method1
|
160
|
-
assert_equal :result2, mock.method2
|
161
|
-
end
|
162
|
-
|
163
|
-
def test_should_set_up_multiple_stubs_with_return_values
|
164
|
-
mock = build_mock
|
165
|
-
mock.stubs(:method1 => :result1, :method2 => :result2)
|
166
|
-
assert_equal :result1, mock.method1
|
167
|
-
assert_equal :result2, mock.method2
|
168
|
-
end
|
169
|
-
|
170
|
-
def test_should_keep_returning_specified_value_for_stubs
|
171
|
-
mock = build_mock
|
172
|
-
mock.stubs(:method1).returns(1)
|
173
|
-
assert_equal 1, mock.method1
|
174
|
-
assert_equal 1, mock.method1
|
175
|
-
end
|
176
|
-
|
177
|
-
def test_should_keep_returning_specified_value_for_expects
|
178
|
-
mock = build_mock
|
179
|
-
mock.expects(:method1).times(2).returns(1)
|
180
|
-
assert_equal 1, mock.method1
|
181
|
-
assert_equal 1, mock.method1
|
182
|
-
end
|
183
|
-
|
184
|
-
def test_should_match_most_recent_call_to_expects
|
185
|
-
mock = build_mock
|
186
|
-
mock.expects(:method1).returns(0)
|
187
|
-
mock.expects(:method1).returns(1)
|
188
|
-
assert_equal 1, mock.method1
|
189
|
-
end
|
190
|
-
|
191
|
-
def test_should_match_most_recent_call_to_stubs
|
192
|
-
mock = build_mock
|
193
|
-
mock.stubs(:method1).returns(0)
|
194
|
-
mock.stubs(:method1).returns(1)
|
195
|
-
assert_equal 1, mock.method1
|
196
|
-
end
|
197
|
-
|
198
|
-
def test_should_match_most_recent_call_to_stubs_or_expects
|
199
|
-
mock = build_mock
|
200
|
-
mock.stubs(:method1).returns(0)
|
201
|
-
mock.expects(:method1).returns(1)
|
202
|
-
assert_equal 1, mock.method1
|
203
|
-
end
|
204
|
-
|
205
|
-
def test_should_match_most_recent_call_to_expects_or_stubs
|
206
|
-
mock = build_mock
|
207
|
-
mock.expects(:method1).returns(0)
|
208
|
-
mock.stubs(:method1).returns(1)
|
209
|
-
assert_equal 1, mock.method1
|
210
|
-
end
|
211
|
-
|
212
|
-
def test_should_respond_to_expected_method
|
213
|
-
mock = build_mock
|
214
|
-
mock.expects(:method1)
|
215
|
-
assert_equal true, mock.respond_to?(:method1)
|
216
|
-
end
|
217
|
-
|
218
|
-
def test_should_respond_to_expected_method_as_string
|
219
|
-
mock = build_mock
|
220
|
-
mock.expects(:method1)
|
221
|
-
assert_equal true, mock.respond_to?('method1')
|
222
|
-
end
|
223
|
-
|
224
|
-
def test_should_not_respond_to_unexpected_method
|
225
|
-
mock = build_mock
|
226
|
-
assert_equal false, mock.respond_to?(:method1)
|
227
|
-
end
|
228
|
-
|
229
|
-
def test_should_respond_to_methods_which_the_responder_does_responds_to
|
230
|
-
instance = Class.new do
|
231
|
-
define_method(:respond_to?) { |symbol| true }
|
232
|
-
end.new
|
233
|
-
mock = build_mock
|
234
|
-
mock.responds_like(instance)
|
235
|
-
assert_equal true, mock.respond_to?(:invoked_method)
|
236
|
-
end
|
237
|
-
|
238
|
-
def test_should_not_respond_to_methods_which_the_responder_does_not_responds_to
|
239
|
-
instance = Class.new do
|
240
|
-
define_method(:respond_to?) { |symbol| false }
|
241
|
-
end.new
|
242
|
-
mock = build_mock
|
243
|
-
mock.responds_like(instance)
|
244
|
-
assert_equal false, mock.respond_to?(:invoked_method)
|
245
|
-
end
|
246
|
-
|
247
|
-
def test_should_respond_to_methods_which_the_responder_instance_does_responds_to
|
248
|
-
klass = Class.new do
|
249
|
-
define_method(:respond_to?) { |symbol| true }
|
250
|
-
end
|
251
|
-
mock = build_mock
|
252
|
-
mock.responds_like_instance_of(klass)
|
253
|
-
assert_equal true, mock.respond_to?(:invoked_method)
|
254
|
-
end
|
255
|
-
|
256
|
-
def test_should_not_respond_to_methods_which_the_responder_instance_does_not_responds_to
|
257
|
-
klass = Class.new do
|
258
|
-
define_method(:respond_to?) { |symbol| false }
|
259
|
-
end
|
260
|
-
mock = build_mock
|
261
|
-
mock.responds_like_instance_of(klass)
|
262
|
-
assert_equal false, mock.respond_to?(:invoked_method)
|
263
|
-
end
|
264
|
-
|
265
|
-
def test_respond_like_should_return_itself_to_allow_method_chaining
|
266
|
-
mock = build_mock
|
267
|
-
assert_same mock.responds_like(Object.new), mock
|
268
|
-
end
|
269
|
-
|
270
|
-
def test_respond_like_instance_of_should_return_itself_to_allow_method_chaining
|
271
|
-
mock = build_mock
|
272
|
-
assert_same mock.responds_like_instance_of(Object), mock
|
273
|
-
end
|
274
|
-
|
275
|
-
def test_should_not_raise_no_method_error_if_mock_is_not_restricted_to_respond_like_a_responder
|
276
|
-
mock = build_mock
|
277
|
-
mock.stubs(:invoked_method)
|
278
|
-
assert_nothing_raised(NoMethodError) { mock.invoked_method }
|
279
|
-
end
|
280
|
-
|
281
|
-
def test_should_not_raise_no_method_error_if_responder_does_respond_to_invoked_method
|
282
|
-
instance = Class.new do
|
283
|
-
define_method(:respond_to?) { |symbol| true }
|
284
|
-
end.new
|
285
|
-
mock = build_mock
|
286
|
-
mock.responds_like(instance)
|
287
|
-
mock.stubs(:invoked_method)
|
288
|
-
assert_nothing_raised(NoMethodError) { mock.invoked_method }
|
289
|
-
end
|
290
|
-
|
291
|
-
def test_should_raise_no_method_error_if_responder_does_not_respond_to_invoked_method
|
292
|
-
instance = Class.new do
|
293
|
-
define_method(:respond_to?) { |symbol| false }
|
294
|
-
define_method(:mocha_inspect) { 'mocha_inspect' }
|
295
|
-
end.new
|
296
|
-
mock = build_mock
|
297
|
-
mock.responds_like(instance)
|
298
|
-
mock.stubs(:invoked_method)
|
299
|
-
assert_raises(NoMethodError) { mock.invoked_method }
|
300
|
-
end
|
301
|
-
|
302
|
-
def test_should_raise_no_method_error_with_message_indicating_that_mock_is_constrained_to_respond_like_responder
|
303
|
-
instance = Class.new do
|
304
|
-
define_method(:respond_to?) { |symbol| false }
|
305
|
-
define_method(:mocha_inspect) { 'mocha_inspect' }
|
306
|
-
end.new
|
307
|
-
mock = build_mock
|
308
|
-
mock.responds_like(instance)
|
309
|
-
mock.stubs(:invoked_method)
|
310
|
-
begin
|
311
|
-
mock.invoked_method
|
312
|
-
rescue NoMethodError => e
|
313
|
-
assert_match(/which responds like mocha_inspect/, e.message)
|
314
|
-
end
|
315
|
-
end
|
316
|
-
|
317
|
-
def test_should_handle_respond_to_with_private_methods_param_without_error
|
318
|
-
mock = build_mock
|
319
|
-
assert_nothing_raised { mock.respond_to?(:object_id, false) }
|
320
|
-
end
|
321
|
-
|
322
|
-
def test_should_respond_to_any_method_if_stubbing_everything
|
323
|
-
mock = build_mock
|
324
|
-
mock.stub_everything
|
325
|
-
assert mock.respond_to?(:abc)
|
326
|
-
assert mock.respond_to?(:xyz)
|
327
|
-
end
|
328
|
-
|
329
|
-
def test_should_remove_expectation_for_unstubbed_method
|
330
|
-
mock = build_mock
|
331
|
-
mock.expects(:method1)
|
332
|
-
mock.unstub(:method1)
|
333
|
-
e = assert_raises(ExpectationErrorFactory.exception_class) { mock.method1 }
|
334
|
-
assert_match(/unexpected invocation/, e.message)
|
335
|
-
end
|
336
|
-
|
337
|
-
private
|
338
|
-
|
339
|
-
def build_mock
|
340
|
-
Mock.new(nil)
|
341
|
-
end
|
342
|
-
end
|
data/test/unit/mockery_test.rb
DELETED
@@ -1,151 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/mockery'
|
3
|
-
require 'mocha/state_machine'
|
4
|
-
require 'mocha/expectation_error_factory'
|
5
|
-
|
6
|
-
class MockeryTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha
|
9
|
-
|
10
|
-
def test_should_build_instance_of_mockery
|
11
|
-
mockery = Mockery.instance
|
12
|
-
assert_not_nil mockery
|
13
|
-
assert_kind_of Mockery, mockery
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_cache_instance_of_mockery
|
17
|
-
mockery_1 = Mockery.instance
|
18
|
-
mockery_2 = Mockery.instance
|
19
|
-
assert_same mockery_1, mockery_2
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_expire_mockery_instance_cache
|
23
|
-
mockery_1 = Mockery.instance
|
24
|
-
Mockery.reset_instance
|
25
|
-
mockery_2 = Mockery.instance
|
26
|
-
assert_not_same mockery_1, mockery_2
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_raise_expectation_error_because_not_all_expectations_are_satisfied
|
30
|
-
mockery = Mockery.new
|
31
|
-
mock_1 = mockery.named_mock('mock-1') { expects(:method_1) }
|
32
|
-
mock_2 = mockery.named_mock('mock-2') { expects(:method_2) }
|
33
|
-
1.times { mock_1.method_1 }
|
34
|
-
0.times { mock_2.method_2 }
|
35
|
-
assert_raises(ExpectationErrorFactory.exception_class) { mockery.verify }
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_reset_list_of_mocks_on_teardown
|
39
|
-
mockery = Mockery.new
|
40
|
-
mockery.unnamed_mock { expects(:my_method) }
|
41
|
-
mockery.teardown
|
42
|
-
assert_nothing_raised(ExpectationErrorFactory.exception_class) { mockery.verify }
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_should_build_instance_of_stubba_on_instantiation
|
46
|
-
mockery = Mockery.new
|
47
|
-
assert_not_nil mockery.stubba
|
48
|
-
assert_kind_of Central, mockery.stubba
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_should_build_new_instance_of_stubba_on_teardown
|
52
|
-
mockery = Mockery.new
|
53
|
-
stubba_1 = mockery.stubba
|
54
|
-
mockery.teardown
|
55
|
-
stubba_2 = mockery.stubba
|
56
|
-
assert_not_same stubba_1, stubba_2
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_should_build_and_store_new_state_machine
|
60
|
-
mockery = Mockery.new
|
61
|
-
mockery.new_state_machine('state-machine-name')
|
62
|
-
assert_equal 1, mockery.state_machines.length
|
63
|
-
assert_kind_of StateMachine, mockery.state_machines[0]
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_should_reset_list_of_state_machines_on_teardown
|
67
|
-
mockery = Mockery.new
|
68
|
-
mockery.new_state_machine('state-machine-name')
|
69
|
-
mockery.teardown
|
70
|
-
assert_equal 0, mockery.state_machines.length
|
71
|
-
end
|
72
|
-
|
73
|
-
class FakeMethod
|
74
|
-
def stub; end
|
75
|
-
def unstub; end
|
76
|
-
def matches?(other); true; end
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_should_unstub_all_methods_on_teardown
|
80
|
-
mockery = Mockery.new
|
81
|
-
stubba = mockery.stubba
|
82
|
-
stubba.stub(FakeMethod.new)
|
83
|
-
mockery.teardown
|
84
|
-
assert stubba.stubba_methods.empty?
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_should_display_object_id_for_mocha_inspect_if_mock_has_no_name
|
88
|
-
mockery = Mockery.new
|
89
|
-
mock = mockery.unnamed_mock
|
90
|
-
assert_match Regexp.new("^#<Mock:0x[0-9A-Fa-f]{1,12}>$"), mock.mocha_inspect
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_should_display_object_id_for_inspect_if_mock_has_no_name
|
94
|
-
mockery = Mockery.new
|
95
|
-
mock = mockery.unnamed_mock
|
96
|
-
assert_match Regexp.new("^#<Mock:0x[0-9A-Fa-f]{1,12}>$"), mock.inspect
|
97
|
-
end
|
98
|
-
|
99
|
-
def test_should_display_name_for_mocha_inspect_if_mock_has_string_name
|
100
|
-
mockery = Mockery.new
|
101
|
-
mock = mockery.named_mock('named_mock')
|
102
|
-
assert_equal "#<Mock:named_mock>", mock.mocha_inspect
|
103
|
-
end
|
104
|
-
|
105
|
-
def test_should_display_name_for_mocha_inspect_if_mock_has_symbol_name
|
106
|
-
mockery = Mockery.new
|
107
|
-
mock = mockery.named_mock(:named_mock)
|
108
|
-
assert_equal "#<Mock:named_mock>", mock.mocha_inspect
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_should_display_name_for_inspect_if_mock_has_string_name
|
112
|
-
mockery = Mockery.new
|
113
|
-
mock = mockery.named_mock('named_mock')
|
114
|
-
assert_equal "#<Mock:named_mock>", mock.inspect
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_should_display_name_for_inspect_if_mock_has_symbol_name
|
118
|
-
mockery = Mockery.new
|
119
|
-
mock = mockery.named_mock(:named_mock)
|
120
|
-
assert_equal "#<Mock:named_mock>", mock.inspect
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_should_display_impersonated_object_for_mocha_inspect
|
124
|
-
mockery = Mockery.new
|
125
|
-
instance = Object.new
|
126
|
-
mock = mockery.mock_impersonating(instance)
|
127
|
-
assert_equal "#{instance.mocha_inspect}", mock.mocha_inspect
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_should_display_impersonated_object_for_inspect
|
131
|
-
mockery = Mockery.new
|
132
|
-
instance = Object.new
|
133
|
-
mock = mockery.mock_impersonating(instance)
|
134
|
-
assert_equal "#{instance.mocha_inspect}", mock.inspect
|
135
|
-
end
|
136
|
-
|
137
|
-
class FakeClass; end
|
138
|
-
|
139
|
-
def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_mocha_inspect
|
140
|
-
mockery = Mockery.new
|
141
|
-
mock = mockery.mock_impersonating_any_instance_of(FakeClass)
|
142
|
-
assert_equal "#<AnyInstance:MockeryTest::FakeClass>", mock.mocha_inspect
|
143
|
-
end
|
144
|
-
|
145
|
-
def test_should_display_any_instance_prefix_followed_by_class_whose_instances_are_being_impersonated_for_inspect
|
146
|
-
mockery = Mockery.new
|
147
|
-
mock = mockery.mock_impersonating_any_instance_of(FakeClass)
|
148
|
-
assert_equal "#<AnyInstance:MockeryTest::FakeClass>", mock.inspect
|
149
|
-
end
|
150
|
-
|
151
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/module_methods'
|
3
|
-
require 'mocha/object_methods'
|
4
|
-
|
5
|
-
class ModuleMethodsTest < Mocha::TestCase
|
6
|
-
|
7
|
-
def setup
|
8
|
-
@module = Module.new.extend(Mocha::ModuleMethods, Mocha::ObjectMethods)
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_should_use_stubba_module_method_for_module
|
12
|
-
assert_equal Mocha::ModuleMethod, @module.stubba_method
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_stub_self_for_module
|
16
|
-
assert_equal @module, @module.stubba_object
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/multiple_yields'
|
4
|
-
|
5
|
-
class MultipleYieldsTest < Mocha::TestCase
|
6
|
-
|
7
|
-
include Mocha
|
8
|
-
|
9
|
-
def test_should_provide_parameters_for_multiple_yields_in_single_invocation
|
10
|
-
parameter_group = MultipleYields.new([1, 2, 3], [4, 5])
|
11
|
-
parameter_groups = []
|
12
|
-
parameter_group.each do |parameters|
|
13
|
-
parameter_groups << parameters
|
14
|
-
end
|
15
|
-
assert_equal [[1, 2, 3], [4, 5]], parameter_groups
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
data/test/unit/no_yields_test.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/no_yields'
|
4
|
-
|
5
|
-
class NoYieldsTest < Mocha::TestCase
|
6
|
-
|
7
|
-
include Mocha
|
8
|
-
|
9
|
-
def test_should_provide_parameters_for_no_yields_in_single_invocation
|
10
|
-
parameter_group = NoYields.new
|
11
|
-
parameter_groups = []
|
12
|
-
parameter_group.each do |parameters|
|
13
|
-
parameter_groups << parameters
|
14
|
-
end
|
15
|
-
assert_equal [], parameter_groups
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/ruby_version'
|
3
|
-
require 'mocha/inspect'
|
4
|
-
require 'method_definer'
|
5
|
-
|
6
|
-
class ObjectInspectTest < Mocha::TestCase
|
7
|
-
|
8
|
-
def test_should_return_default_string_representation_of_object_not_including_instance_variables
|
9
|
-
object = Object.new
|
10
|
-
class << object
|
11
|
-
attr_accessor :attribute
|
12
|
-
end
|
13
|
-
object.attribute = 'instance_variable'
|
14
|
-
assert_match Regexp.new("^#<Object:0x[0-9A-Fa-f]{1,8}.*>$"), object.mocha_inspect
|
15
|
-
assert_no_match(/instance_variable/, object.mocha_inspect)
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_return_customized_string_representation_of_object
|
19
|
-
object = Object.new
|
20
|
-
class << object
|
21
|
-
define_method(:inspect) { 'custom_inspect' }
|
22
|
-
end
|
23
|
-
assert_equal 'custom_inspect', object.mocha_inspect
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_use_underscored_id_instead_of_object_id_or_id_so_that_they_can_be_stubbed
|
27
|
-
calls = []
|
28
|
-
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" }
|
33
|
-
|
34
|
-
object.mocha_inspect
|
35
|
-
|
36
|
-
assert_equal [:__id__], calls.uniq
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'mocha/object_methods'
|
3
|
-
require 'mocha/mock'
|
4
|
-
require 'mocha/expectation_error_factory'
|
5
|
-
|
6
|
-
class ObjectMethodsTest < Mocha::TestCase
|
7
|
-
|
8
|
-
def setup
|
9
|
-
@object = Object.new.extend(Mocha::ObjectMethods)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_should_build_mocha_referring_to_self
|
13
|
-
mocha = @object.mocha
|
14
|
-
assert_not_nil mocha
|
15
|
-
assert mocha.is_a?(Mocha::Mock)
|
16
|
-
assert_equal @object.mocha_inspect, mocha.mocha_inspect
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_should_reuse_existing_mocha
|
20
|
-
mocha_1 = @object.mocha
|
21
|
-
mocha_2 = @object.mocha
|
22
|
-
assert_equal mocha_1, mocha_2
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_reset_mocha
|
26
|
-
assert_nil @object.reset_mocha
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_should_use_stubba_instance_method_for_object
|
30
|
-
assert_equal Mocha::InstanceMethod, Object.new.stubba_method
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_stub_self_for_object
|
34
|
-
assert_equal @object, @object.stubba_object
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_nobody_expects_the_spanish_inquisition
|
38
|
-
assert_raise(Mocha::ExpectationErrorFactory.exception_class) { @object.expects(:the_spanish_inquisition) }
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_alias_object_method
|
42
|
-
klass = Class.new { def self.method_x; end }
|
43
|
-
assert_equal klass._method(:method_x), klass.method(:method_x)
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/all_of'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
require 'stub_matcher'
|
6
|
-
|
7
|
-
class AllOfTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_if_all_matchers_match
|
12
|
-
matcher = all_of(Stub::Matcher.new(true), Stub::Matcher.new(true), Stub::Matcher.new(true))
|
13
|
-
assert matcher.matches?(['any_old_value'])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_if_any_matcher_does_not_match
|
17
|
-
matcher = all_of(Stub::Matcher.new(true), Stub::Matcher.new(false), Stub::Matcher.new(true))
|
18
|
-
assert !matcher.matches?(['any_old_value'])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_describe_matcher
|
22
|
-
matcher = all_of(Stub::Matcher.new(true), Stub::Matcher.new(false), Stub::Matcher.new(true))
|
23
|
-
assert_equal 'all_of(matcher(true), matcher(false), matcher(true))', matcher.mocha_inspect
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/any_of'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
require 'stub_matcher'
|
6
|
-
|
7
|
-
class AnyOfTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_if_any_matchers_match
|
12
|
-
matcher = any_of(Stub::Matcher.new(false), Stub::Matcher.new(true), Stub::Matcher.new(false))
|
13
|
-
assert matcher.matches?(['any_old_value'])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_if_no_matchers_match
|
17
|
-
matcher = any_of(Stub::Matcher.new(false), Stub::Matcher.new(false), Stub::Matcher.new(false))
|
18
|
-
assert !matcher.matches?(['any_old_value'])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_describe_matcher
|
22
|
-
matcher = any_of(Stub::Matcher.new(false), Stub::Matcher.new(true), Stub::Matcher.new(false))
|
23
|
-
assert_equal 'any_of(matcher(false), matcher(true), matcher(false))', matcher.mocha_inspect
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|