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
@@ -1,21 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/anything'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class AnythingTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_anything
|
11
|
-
matcher = anything
|
12
|
-
assert matcher.matches?([:something])
|
13
|
-
assert matcher.matches?([{'x' => 'y'}])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_describe_matcher
|
17
|
-
matcher = anything
|
18
|
-
assert_equal "anything", matcher.mocha_inspect
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/equals'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class EqualsTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_object_that_equals_value
|
11
|
-
matcher = equals('x')
|
12
|
-
assert matcher.matches?(['x'])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_object_that_does_not_equal_value
|
16
|
-
matcher = equals('x')
|
17
|
-
assert !matcher.matches?(['y'])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = equals('x')
|
22
|
-
assert_equal "'x'", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/has_entries'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/inspect'
|
6
|
-
|
7
|
-
class HasEntriesTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_hash_including_specified_entries
|
12
|
-
matcher = has_entries(:key_1 => 'value_1', :key_2 => 'value_2')
|
13
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_hash_not_including_specified_entries
|
17
|
-
matcher = has_entries(:key_1 => 'value_2', :key_2 => 'value_2', :key_3 => 'value_3')
|
18
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_describe_matcher
|
22
|
-
matcher = has_entries(:key_1 => 'value_1', :key_2 => 'value_2')
|
23
|
-
description = matcher.mocha_inspect
|
24
|
-
matches = /has_entries\((.*)\)/.match(description)
|
25
|
-
assert_not_nil matches[0]
|
26
|
-
entries = eval(matches[1], binding, __FILE__, __LINE__)
|
27
|
-
assert_equal 'value_1', entries[:key_1]
|
28
|
-
assert_equal 'value_2', entries[:key_2]
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_match_hash_including_specified_entries_with_nested_key_matchers
|
32
|
-
matcher = has_entries(equals(:key_1) => 'value_1', equals(:key_2) => 'value_2')
|
33
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_should_not_match_hash_not_including_specified_entries_with_nested_key_matchers
|
37
|
-
matcher = has_entries(equals(:key_1) => 'value_2', equals(:key_2) => 'value_2', equals(:key_3) => 'value_3')
|
38
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_match_hash_including_specified_entries_with_nested_value_matchers
|
42
|
-
matcher = has_entries(:key_1 => equals('value_1'), :key_2 => equals('value_2'))
|
43
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3' }])
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_should_not_match_hash_not_including_specified_entries_with_nested_value_matchers
|
47
|
-
matcher = has_entries(:key_1 => equals('value_2'), :key_2 => equals('value_2'), :key_3 => equals('value_3'))
|
48
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
49
|
-
end
|
50
|
-
|
51
|
-
end
|
@@ -1,129 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/has_entry'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/parameter_matchers/equals'
|
6
|
-
require 'mocha/inspect'
|
7
|
-
|
8
|
-
class HasEntryTest < Mocha::TestCase
|
9
|
-
|
10
|
-
include Mocha::ParameterMatchers
|
11
|
-
|
12
|
-
def test_should_match_hash_including_specified_key_value_pair
|
13
|
-
matcher = has_entry(:key_1, 'value_1')
|
14
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_hash_not_including_specified_key_value_pair
|
18
|
-
matcher = has_entry(:key_1, 'value_2')
|
19
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_match_hash_including_specified_entry
|
23
|
-
matcher = has_entry(:key_1 => 'value_1')
|
24
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_not_match_hash_not_including_specified_entry
|
28
|
-
matcher = has_entry(:key_1 => 'value_2')
|
29
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_describe_matcher_with_key_value_pair
|
33
|
-
matcher = has_entry(:key_1, 'value_1')
|
34
|
-
assert_equal "has_entry(:key_1 => 'value_1')", matcher.mocha_inspect
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_describe_matcher_with_entry
|
38
|
-
matcher = has_entry(:key_1 => 'value_1')
|
39
|
-
assert_equal "has_entry(:key_1 => 'value_1')", matcher.mocha_inspect
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_match_hash_including_specified_entry_with_nested_key_matcher
|
43
|
-
matcher = has_entry(equals(:key_1) => 'value_1')
|
44
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_match_hash_including_specified_entry_with_nested_value_matcher
|
48
|
-
matcher = has_entry(:key_1 => equals('value_1'))
|
49
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_not_match_hash_not_including_specified_entry_with_nested_key_matcher
|
53
|
-
matcher = has_entry(equals(:key_1) => 'value_2')
|
54
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
55
|
-
end
|
56
|
-
|
57
|
-
def test_should_not_match_hash_not_including_specified_entry_with_nested_value_matcher
|
58
|
-
matcher = has_entry(:key_1 => equals('value_2'))
|
59
|
-
assert !matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_should_not_match_object_that_doesnt_respond_to_keys
|
63
|
-
matcher = has_entry(:key_1 => equals('value_2'))
|
64
|
-
object = Class.new do
|
65
|
-
def [](key)
|
66
|
-
'value_2'
|
67
|
-
end
|
68
|
-
end.new
|
69
|
-
assert !matcher.matches?([object])
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_should_not_match_object_that_doesnt_respond_to_square_bracket
|
73
|
-
matcher = has_entry(:key_1 => equals('value_2'))
|
74
|
-
object = Class.new do
|
75
|
-
def keys
|
76
|
-
[:key_1]
|
77
|
-
end
|
78
|
-
end.new
|
79
|
-
assert !matcher.matches?([object])
|
80
|
-
end
|
81
|
-
|
82
|
-
def test_should_raise_argument_error_if_single_argument_is_not_a_hash
|
83
|
-
e = assert_raises(ArgumentError) do
|
84
|
-
has_entry(Array.new)
|
85
|
-
end
|
86
|
-
assert_equal "Argument is not a Hash.", e.message
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_should_raise_argument_error_if_no_entries_are_supplied
|
90
|
-
e = assert_raises(ArgumentError) do
|
91
|
-
has_entry({})
|
92
|
-
end
|
93
|
-
assert_equal "Argument has no entries.", e.message
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_should_raise_argument_error_if_multiple_entries_are_supplied
|
97
|
-
e = assert_raises(ArgumentError) do
|
98
|
-
has_entry(:key_1 => 'value_1', :key_2 => 'value_2')
|
99
|
-
end
|
100
|
-
assert_equal "Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.", e.message
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_should_raise_argument_error_if_more_than_two_arguments_are_supplied
|
104
|
-
e = assert_raises(ArgumentError) do
|
105
|
-
has_entry(1, 2, 3)
|
106
|
-
end
|
107
|
-
assert_equal "Too many arguments; use either a single argument (must be a Hash) or two arguments (a key and a value).", e.message
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_should_match_array_as_key
|
111
|
-
matcher = has_entry([:key_1, :key_2] => 'value_1')
|
112
|
-
assert matcher.matches?([{[:key_1, :key_2] => 'value_1', :key_3 => 'value_2'}])
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_match_array_as_value
|
116
|
-
matcher = has_entry(:key_1 => ['value_1', 'value_2'])
|
117
|
-
assert matcher.matches?([{:key_1 => ['value_1', 'value_2']}])
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_should_match_hash_as_value_and_key
|
121
|
-
matcher = has_entry({{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}})
|
122
|
-
assert matcher.matches?([{{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}, :key_5 => 'value_5'}])
|
123
|
-
end
|
124
|
-
|
125
|
-
def test_should_match_matcher_as_value_and_key
|
126
|
-
matcher = has_entry({has_entry(:key_1 => 'value_1') => has_entry(:key_3 => 'value_3')})
|
127
|
-
assert matcher.matches?([{{:key_1 => 'value_1', :key_2 => 'value_2'} => {:key_3 => 'value_3', :key_4 => 'value_4'}, :key_5 => 'value_5'}])
|
128
|
-
end
|
129
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/has_key'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/inspect'
|
6
|
-
|
7
|
-
class HasKeyTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_hash_including_specified_key
|
12
|
-
matcher = has_key(:key_1)
|
13
|
-
assert matcher.matches?([{ :key_1 => 1, :key_2 => 2 }])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_hash_not_including_specified_key
|
17
|
-
matcher = has_key(:key_1)
|
18
|
-
assert !matcher.matches?([{ :key_2 => 2 }])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_describe_matcher
|
22
|
-
matcher = has_key(:key)
|
23
|
-
assert_equal 'has_key(:key)', matcher.mocha_inspect
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_match_hash_including_specified_key_with_nested_key_matcher
|
27
|
-
matcher = has_key(equals(:key_1))
|
28
|
-
assert matcher.matches?([{ :key_1 => 1, :key_2 => 2 }])
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_not_match_hash_not_including_specified_key_with_nested_key_matcher
|
32
|
-
matcher = has_key(equals(:key_1))
|
33
|
-
assert !matcher.matches?([{ :key_2 => 2 }])
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_should_not_raise_error_on_empty_arguments
|
37
|
-
matcher = has_key(:key)
|
38
|
-
assert_nothing_raised { matcher.matches?([]) }
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_not_match_on_empty_arguments
|
42
|
-
matcher = has_key(:key)
|
43
|
-
assert !matcher.matches?([])
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_should_not_raise_error_on_argument_that_does_not_respond_to_keys
|
47
|
-
matcher = has_key(:key)
|
48
|
-
assert_nothing_raised { matcher.matches?([:key]) }
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_should_not_match_on_argument_that_does_not_respond_to_keys
|
52
|
-
matcher = has_key(:key)
|
53
|
-
assert !matcher.matches?([:key])
|
54
|
-
end
|
55
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/has_value'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/parameter_matchers/equals'
|
6
|
-
require 'mocha/inspect'
|
7
|
-
|
8
|
-
class HasValueTest < Mocha::TestCase
|
9
|
-
|
10
|
-
include Mocha::ParameterMatchers
|
11
|
-
|
12
|
-
def test_should_match_hash_including_specified_value
|
13
|
-
matcher = has_value('value_1')
|
14
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_not_match_hash_not_including_specified_value
|
18
|
-
matcher = has_value('value_1')
|
19
|
-
assert !matcher.matches?([{ :key_2 => 'value_2' }])
|
20
|
-
end
|
21
|
-
|
22
|
-
def test_should_describe_matcher
|
23
|
-
matcher = has_value('value_1')
|
24
|
-
assert_equal "has_value('value_1')", matcher.mocha_inspect
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_match_hash_including_specified_value_with_nested_value_matcher
|
28
|
-
matcher = has_value(equals('value_1'))
|
29
|
-
assert matcher.matches?([{ :key_1 => 'value_1', :key_2 => 'value_2' }])
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_not_match_hash_not_including_specified_value_with_nested_value_matcher
|
33
|
-
matcher = has_value(equals('value_1'))
|
34
|
-
assert !matcher.matches?([{ :key_2 => 'value_2' }])
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_should_not_raise_error_on_empty_arguments
|
38
|
-
matcher = has_value('value_1')
|
39
|
-
assert_nothing_raised { matcher.matches?([]) }
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_not_match_empty_arguments
|
43
|
-
matcher = has_value('value_1')
|
44
|
-
assert !matcher.matches?([])
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_should_not_raise_error_on_argument_that_does_not_respond_to_values
|
48
|
-
matcher = has_value('value_1')
|
49
|
-
assert_nothing_raised { matcher.matches?(['value_1']) }
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_not_match_on_argument_that_does_not_respond_to_values
|
53
|
-
matcher = has_value('value_1')
|
54
|
-
assert !matcher.matches?(['value_1'])
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
@@ -1,102 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/includes'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/parameter_matchers/has_key'
|
6
|
-
require 'mocha/parameter_matchers/regexp_matches'
|
7
|
-
require 'mocha/inspect'
|
8
|
-
|
9
|
-
class IncludesTest < Mocha::TestCase
|
10
|
-
|
11
|
-
include Mocha::ParameterMatchers
|
12
|
-
|
13
|
-
def test_should_match_object_including_value
|
14
|
-
matcher = includes(:x)
|
15
|
-
assert matcher.matches?([[:x, :y, :z]])
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_should_match_object_including_all_values
|
19
|
-
matcher = includes(:x, :y, :z)
|
20
|
-
assert matcher.matches?([[:x, :y, :z]])
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_should_not_match_object_that_does_not_include_value
|
24
|
-
matcher = includes(:not_included)
|
25
|
-
assert !matcher.matches?([[:x, :y, :z]])
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_should_not_match_object_that_does_not_include_any_one_value
|
29
|
-
matcher = includes(:x, :y, :z, :not_included)
|
30
|
-
assert !matcher.matches?([[:x, :y, :z]])
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_describe_matcher_with_one_item
|
34
|
-
matcher = includes(:x)
|
35
|
-
assert_equal "includes(:x)", matcher.mocha_inspect
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_describe_matcher_with_multiple_items
|
39
|
-
matcher = includes(:x, :y, :z)
|
40
|
-
assert_equal "includes(:x, :y, :z)", matcher.mocha_inspect
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_not_raise_error_on_emtpy_arguments
|
44
|
-
matcher = includes(:x)
|
45
|
-
assert_nothing_raised { matcher.matches?([]) }
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_should_not_match_on_empty_arguments
|
49
|
-
matcher = includes(:x)
|
50
|
-
assert !matcher.matches?([])
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_should_not_raise_error_on_argument_that_does_not_respond_to_include
|
54
|
-
matcher = includes(:x)
|
55
|
-
assert_nothing_raised { matcher.matches?([:x]) }
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_should_not_match_on_argument_that_does_not_respond_to_include
|
59
|
-
matcher = includes(:x)
|
60
|
-
assert !matcher.matches?([:x])
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_should_match_object_including_value_which_matches_nested_matcher
|
64
|
-
matcher = includes(has_key(:key))
|
65
|
-
assert matcher.matches?([[:non_matching_element, {:key => 'value'}]])
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_should_not_match_object_which_doesnt_include_value_that_matches_nested_matcher
|
69
|
-
matcher = includes(has_key(:key))
|
70
|
-
assert !matcher.matches?([[:non_matching_element, {:other_key => 'other-value'}]])
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_should_match_string_argument_containing_substring
|
74
|
-
matcher = includes('bar')
|
75
|
-
assert matcher.matches?(['foobarbaz'])
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_should_not_match_string_argument_without_substring
|
79
|
-
matcher = includes('bar')
|
80
|
-
assert !matcher.matches?(['foobaz'])
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_should_match_hash_argument_containing_given_key
|
84
|
-
matcher = includes(:key)
|
85
|
-
assert matcher.matches?([{:thing => 1, :key => 2}])
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_should_not_match_hash_argument_missing_given_key
|
89
|
-
matcher = includes(:key)
|
90
|
-
assert !matcher.matches?([{:thing => 1, :other => :key}])
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_should_match_hash_when_nested_matcher_matches_key
|
94
|
-
matcher = includes(regexp_matches(/ar/))
|
95
|
-
assert matcher.matches?([{'foo' => 1, 'bar' => 2}])
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_should_not_match_hash_when_nested_matcher_doesn_not_match_key
|
99
|
-
matcher = includes(regexp_matches(/az/))
|
100
|
-
assert !matcher.matches?([{'foo' => 1, 'bar' => 2}])
|
101
|
-
end
|
102
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/instance_of'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class InstanceOfTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_object_that_is_an_instance_of_specified_class
|
11
|
-
matcher = instance_of(String)
|
12
|
-
assert matcher.matches?(['string'])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_object_that_is_not_an_instance_of_specified_class
|
16
|
-
matcher = instance_of(String)
|
17
|
-
assert !matcher.matches?([99])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = instance_of(String)
|
22
|
-
assert_equal "instance_of(String)", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/is_a'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class IsATest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_object_that_is_a_specified_class
|
11
|
-
matcher = is_a(Integer)
|
12
|
-
assert matcher.matches?([99])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_object_that_is_not_a_specified_class
|
16
|
-
matcher = is_a(Integer)
|
17
|
-
assert !matcher.matches?(['string'])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = is_a(Integer)
|
22
|
-
assert_equal "is_a(Integer)", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/kind_of'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class KindOfTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_object_that_is_a_kind_of_specified_class
|
11
|
-
matcher = kind_of(Integer)
|
12
|
-
assert matcher.matches?([99])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_object_that_is_not_a_kind_of_specified_class
|
16
|
-
matcher = kind_of(Integer)
|
17
|
-
assert !matcher.matches?(['string'])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = kind_of(Integer)
|
22
|
-
assert_equal "kind_of(Integer)", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/not'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
require 'stub_matcher'
|
6
|
-
|
7
|
-
class NotTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_if_matcher_does_not_match
|
12
|
-
matcher = Not(Stub::Matcher.new(false))
|
13
|
-
assert matcher.matches?(['any_old_value'])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_if_matcher_does_match
|
17
|
-
matcher = Not(Stub::Matcher.new(true))
|
18
|
-
assert !matcher.matches?(['any_old_value'])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_describe_matcher
|
22
|
-
matcher = Not(Stub::Matcher.new(true))
|
23
|
-
assert_equal 'Not(matcher(true))', matcher.mocha_inspect
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/regexp_matches'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class RegexpMatchesTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_parameter_matching_regular_expression
|
11
|
-
matcher = regexp_matches(/oo/)
|
12
|
-
assert matcher.matches?(['foo'])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_parameter_not_matching_regular_expression
|
16
|
-
matcher = regexp_matches(/oo/)
|
17
|
-
assert !matcher.matches?(['bar'])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = regexp_matches(/oo/)
|
22
|
-
assert_equal "regexp_matches(/oo/)", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_not_raise_error_on_empty_arguments
|
26
|
-
matcher = regexp_matches(/oo/)
|
27
|
-
assert_nothing_raised { matcher.matches?([]) }
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_should_not_match_on_empty_arguments
|
31
|
-
matcher = regexp_matches(/oo/)
|
32
|
-
assert !matcher.matches?([])
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_not_raise_error_on_argument_that_does_not_respond_to_equals_tilde
|
36
|
-
object_not_responding_to_equals_tilde = Class.new { undef =~ }.new
|
37
|
-
matcher = regexp_matches(/oo/)
|
38
|
-
assert_nothing_raised { matcher.matches?([object_not_responding_to_equals_tilde]) }
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_not_match_on_argument_that_does_not_respond_to_equals_tilde
|
42
|
-
object_not_responding_to_equals_tilde = Class.new { undef =~ }.new
|
43
|
-
matcher = regexp_matches(/oo/)
|
44
|
-
assert !matcher.matches?([object_not_responding_to_equals_tilde])
|
45
|
-
end
|
46
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/responds_with'
|
4
|
-
require 'mocha/parameter_matchers/object'
|
5
|
-
require 'mocha/inspect'
|
6
|
-
|
7
|
-
class RespondsWithTest < Mocha::TestCase
|
8
|
-
|
9
|
-
include Mocha::ParameterMatchers
|
10
|
-
|
11
|
-
def test_should_match_parameter_responding_with_expected_value
|
12
|
-
matcher = responds_with(:upcase, 'FOO')
|
13
|
-
assert matcher.matches?(['foo'])
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_parameter_responding_with_unexpected_value
|
17
|
-
matcher = responds_with(:upcase, 'FOO')
|
18
|
-
assert !matcher.matches?(['bar'])
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_match_parameter_responding_with_nested_responds_with_matcher
|
22
|
-
matcher = responds_with(:foo, responds_with(:bar, 'baz'))
|
23
|
-
object = Class.new { def foo; Class.new { def bar; 'baz'; end }.new; end }.new
|
24
|
-
assert matcher.matches?([object])
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_describe_matcher
|
28
|
-
matcher = responds_with(:foo, :bar)
|
29
|
-
assert_equal 'responds_with(:foo, :bar)', matcher.mocha_inspect
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Stub
|
2
|
-
|
3
|
-
class Matcher
|
4
|
-
|
5
|
-
attr_accessor :value
|
6
|
-
|
7
|
-
def initialize(matches)
|
8
|
-
@matches = matches
|
9
|
-
end
|
10
|
-
|
11
|
-
def matches?(available_parameters)
|
12
|
-
value = available_parameters.shift
|
13
|
-
@value = value
|
14
|
-
@matches
|
15
|
-
end
|
16
|
-
|
17
|
-
def mocha_inspect
|
18
|
-
"matcher(#{@matches})"
|
19
|
-
end
|
20
|
-
|
21
|
-
def to_matcher
|
22
|
-
self
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'mocha/parameter_matchers/yaml_equivalent'
|
4
|
-
require 'mocha/inspect'
|
5
|
-
|
6
|
-
class YamlEquivalentTest < Mocha::TestCase
|
7
|
-
|
8
|
-
include Mocha::ParameterMatchers
|
9
|
-
|
10
|
-
def test_should_match_parameter_matching_yaml_representation_of_object
|
11
|
-
matcher = yaml_equivalent([1, 2, 3])
|
12
|
-
assert matcher.matches?(["--- \n- 1\n- 2\n- 3\n"])
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_should_not_match_parameter_matching_yaml_representation_of_object
|
16
|
-
matcher = yaml_equivalent([1, 2, 3])
|
17
|
-
assert !matcher.matches?(["--- \n- 4\n- 5\n"])
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_describe_matcher
|
21
|
-
matcher = yaml_equivalent([1, 2, 3])
|
22
|
-
assert_equal "yaml_equivalent([1, 2, 3])", matcher.mocha_inspect
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|