mocha 1.1.0 → 1.13.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 +61 -0
- data/.rubocop_todo.yml +27 -0
- data/.yardopts +1 -0
- data/CONTRIBUTING.md +4 -9
- data/README.md +114 -28
- data/RELEASE.md +248 -1
- data/Rakefile +53 -35
- data/gemfiles/Gemfile.test-unit.latest +5 -1
- data/init.rb +1 -3
- data/lib/mocha/any_instance_method.rb +12 -72
- data/lib/mocha/api.rb +121 -56
- 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 -20
- data/lib/mocha/configuration.rb +361 -18
- 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 +125 -89
- 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 +15 -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/nothing.rb +4 -4
- data/lib/mocha/integration/mini_test/version_13.rb +4 -1
- data/lib/mocha/integration/mini_test/version_140.rb +4 -1
- data/lib/mocha/integration/mini_test/version_141.rb +4 -1
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +4 -1
- data/lib/mocha/integration/mini_test/version_200.rb +4 -1
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2110_to_2111.rb +4 -1
- data/lib/mocha/integration/mini_test/version_2112_to_320.rb +4 -1
- data/lib/mocha/integration/mini_test/version_230_to_2101.rb +4 -1
- data/lib/mocha/integration/mini_test.rb +7 -0
- data/lib/mocha/integration/monkey_patcher.rb +8 -2
- data/lib/mocha/integration/test_unit/adapter.rb +5 -6
- data/lib/mocha/integration/test_unit/gem_version_200.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +5 -2
- data/lib/mocha/integration/test_unit/gem_version_230_to_250.rb +5 -2
- data/lib/mocha/integration/test_unit/nothing.rb +4 -4
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +4 -1
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +4 -1
- data/lib/mocha/integration/test_unit.rb +7 -0
- data/lib/mocha/integration.rb +2 -5
- data/lib/mocha/invocation.rb +77 -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 +8 -0
- data/lib/mocha/mock.rb +94 -46
- data/lib/mocha/mockery.rb +72 -98
- 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 +6 -12
- data/lib/mocha/parameter_matchers/equals.rb +1 -7
- data/lib/mocha/parameter_matchers/{query_string.rb → equivalent_uri.rb} +15 -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 +50 -8
- data/lib/mocha/parameter_matchers/instance_methods.rb +18 -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/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 +6 -9
- 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 +4 -0
- data/lib/mocha/sequence.rb +4 -9
- data/lib/mocha/setup.rb +5 -0
- data/lib/mocha/single_return_value.rb +2 -5
- data/lib/mocha/singleton_class.rb +9 -0
- data/lib/mocha/state_machine.rb +33 -46
- data/lib/mocha/stubbed_method.rb +125 -0
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +7 -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/lib/mocha.rb +8 -0
- data/mocha.gemspec +42 -40
- data/yard-templates/default/layout/html/google_analytics.erb +6 -9
- data/yard-templates/default/layout/html/setup.rb +2 -3
- metadata +45 -191
- data/bin/build-matrix +0 -71
- 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/lib/mocha/class_method.rb +0 -127
- 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/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_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 -88
- 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 -238
- 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 -75
- 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_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 -59
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -130
- 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 -6
- 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 -132
- 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 -223
- 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 -341
- 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 -38
- 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 -59
- 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,70 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class OptionalParameterMatcherTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_pass_if_all_required_parameters_match_and_no_optional_parameters_are_supplied
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock()
|
19
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
20
|
-
mock.method(1, 2)
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_pass_if_all_required_and_optional_parameters_match_and_some_optional_parameters_are_supplied
|
26
|
-
test_result = run_as_test do
|
27
|
-
mock = mock()
|
28
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
29
|
-
mock.method(1, 2, 3)
|
30
|
-
end
|
31
|
-
assert_passed(test_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_pass_if_all_required_and_optional_parameters_match_and_all_optional_parameters_are_supplied
|
35
|
-
test_result = run_as_test do
|
36
|
-
mock = mock()
|
37
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
38
|
-
mock.method(1, 2, 3, 4)
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_fail_if_all_required_and_optional_parameters_match_but_too_many_optional_parameters_are_supplied
|
44
|
-
test_result = run_as_test do
|
45
|
-
mock = mock()
|
46
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
47
|
-
mock.method(1, 2, 3, 4, 5)
|
48
|
-
end
|
49
|
-
assert_failed(test_result)
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_fail_if_all_required_parameters_match_but_some_optional_parameters_do_not_match
|
53
|
-
test_result = run_as_test do
|
54
|
-
mock = mock()
|
55
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
56
|
-
mock.method(1, 2, 4)
|
57
|
-
end
|
58
|
-
assert_failed(test_result)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_fail_if_all_required_parameters_match_but_no_optional_parameters_match
|
62
|
-
test_result = run_as_test do
|
63
|
-
mock = mock()
|
64
|
-
mock.expects(:method).with(1, 2, optionally(3, 4))
|
65
|
-
mock.method(1, 2, 4, 5)
|
66
|
-
end
|
67
|
-
assert_failed(test_result)
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
@@ -1,337 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class ParameterMatcherTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_match_hash_parameter_with_specified_key
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock()
|
19
|
-
mock.expects(:method).with(has_key(:key_1))
|
20
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_not_match_hash_parameter_with_specified_key
|
26
|
-
test_result = run_as_test do
|
27
|
-
mock = mock()
|
28
|
-
mock.expects(:method).with(has_key(:key_1))
|
29
|
-
mock.method(:key_2 => 'value_2')
|
30
|
-
end
|
31
|
-
assert_failed(test_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_match_hash_parameter_with_specified_value
|
35
|
-
test_result = run_as_test do
|
36
|
-
mock = mock()
|
37
|
-
mock.expects(:method).with(has_value('value_1'))
|
38
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_not_match_hash_parameter_with_specified_value
|
44
|
-
test_result = run_as_test do
|
45
|
-
mock = mock()
|
46
|
-
mock.expects(:method).with(has_value('value_1'))
|
47
|
-
mock.method(:key_2 => 'value_2')
|
48
|
-
end
|
49
|
-
assert_failed(test_result)
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_should_match_hash_parameter_with_specified_key_value_pair
|
53
|
-
test_result = run_as_test do
|
54
|
-
mock = mock()
|
55
|
-
mock.expects(:method).with(has_entry(:key_1, 'value_1'))
|
56
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
57
|
-
end
|
58
|
-
assert_passed(test_result)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_should_not_match_hash_parameter_with_specified_key_value_pair
|
62
|
-
test_result = run_as_test do
|
63
|
-
mock = mock()
|
64
|
-
mock.expects(:method).with(has_entry(:key_1, 'value_2'))
|
65
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
66
|
-
end
|
67
|
-
assert_failed(test_result)
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_should_match_hash_parameter_with_specified_hash_entry
|
71
|
-
test_result = run_as_test do
|
72
|
-
mock = mock()
|
73
|
-
mock.expects(:method).with(has_entry(:key_1 => 'value_1'))
|
74
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
75
|
-
end
|
76
|
-
assert_passed(test_result)
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_should_not_match_hash_parameter_with_specified_hash_entry
|
80
|
-
test_result = run_as_test do
|
81
|
-
mock = mock()
|
82
|
-
mock.expects(:method).with(has_entry(:key_1 => 'value_2'))
|
83
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2')
|
84
|
-
end
|
85
|
-
assert_failed(test_result)
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_should_match_hash_parameter_with_specified_entries
|
89
|
-
test_result = run_as_test do
|
90
|
-
mock = mock()
|
91
|
-
mock.expects(:method).with(has_entries(:key_1 => 'value_1', :key_2 => 'value_2'))
|
92
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3')
|
93
|
-
end
|
94
|
-
assert_passed(test_result)
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_should_not_match_hash_parameter_with_specified_entries
|
98
|
-
test_result = run_as_test do
|
99
|
-
mock = mock()
|
100
|
-
mock.expects(:method).with(has_entries(:key_1 => 'value_1', :key_2 => 'value_2'))
|
101
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_3')
|
102
|
-
end
|
103
|
-
assert_failed(test_result)
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_should_match_parameter_that_matches_regular_expression
|
107
|
-
test_result = run_as_test do
|
108
|
-
mock = mock()
|
109
|
-
mock.expects(:method).with(regexp_matches(/meter/))
|
110
|
-
mock.method('this parameter should match')
|
111
|
-
end
|
112
|
-
assert_passed(test_result)
|
113
|
-
end
|
114
|
-
|
115
|
-
def test_should_not_match_parameter_that_does_not_match_regular_expression
|
116
|
-
test_result = run_as_test do
|
117
|
-
mock = mock()
|
118
|
-
mock.expects(:method).with(regexp_matches(/something different/))
|
119
|
-
mock.method('this parameter should not match')
|
120
|
-
end
|
121
|
-
assert_failed(test_result)
|
122
|
-
end
|
123
|
-
|
124
|
-
def test_should_match_hash_parameter_with_specified_entries_using_nested_matchers
|
125
|
-
test_result = run_as_test do
|
126
|
-
mock = mock()
|
127
|
-
mock.expects(:method).with(has_entries(:key_1 => regexp_matches(/value_1/), kind_of(Symbol) => 'value_2'))
|
128
|
-
mock.method(:key_1 => 'value_1', :key_2 => 'value_2', :key_3 => 'value_3')
|
129
|
-
end
|
130
|
-
assert_passed(test_result)
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_should_not_match_hash_parameter_with_specified_entries_using_nested_matchers
|
134
|
-
test_result = run_as_test do
|
135
|
-
mock = mock()
|
136
|
-
mock.expects(:method).with(has_entries(:key_1 => regexp_matches(/value_1/), kind_of(String) => 'value_2'))
|
137
|
-
mock.method(:key_1 => 'value_2', :key_2 => 'value_3')
|
138
|
-
end
|
139
|
-
assert_failed(test_result)
|
140
|
-
end
|
141
|
-
|
142
|
-
def test_should_match_parameter_that_matches_any_value
|
143
|
-
test_result = run_as_test do
|
144
|
-
mock = mock()
|
145
|
-
mock.expects(:method).with(any_of('value_1', 'value_2')).times(2)
|
146
|
-
mock.method('value_1')
|
147
|
-
mock.method('value_2')
|
148
|
-
end
|
149
|
-
assert_passed(test_result)
|
150
|
-
end
|
151
|
-
|
152
|
-
def test_should_not_match_parameter_that_does_not_match_any_value
|
153
|
-
test_result = run_as_test do
|
154
|
-
mock = mock()
|
155
|
-
mock.expects(:method).with(any_of('value_1', 'value_2'))
|
156
|
-
mock.method('value_3')
|
157
|
-
end
|
158
|
-
assert_failed(test_result)
|
159
|
-
end
|
160
|
-
|
161
|
-
def test_should_match_parameter_that_matches_any_of_the_given_matchers
|
162
|
-
test_result = run_as_test do
|
163
|
-
mock = mock()
|
164
|
-
mock.expects(:method).with(has_key(:foo) | has_key(:bar)).times(2)
|
165
|
-
mock.method(:foo => 'fooval')
|
166
|
-
mock.method(:bar => 'barval')
|
167
|
-
end
|
168
|
-
assert_passed(test_result)
|
169
|
-
end
|
170
|
-
|
171
|
-
def test_should_not_match_parameter_that_does_not_match_any_of_the_given_matchers
|
172
|
-
test_result = run_as_test do
|
173
|
-
mock = mock()
|
174
|
-
mock.expects(:method).with(has_key(:foo) | has_key(:bar))
|
175
|
-
mock.method(:baz => 'bazval')
|
176
|
-
end
|
177
|
-
assert_failed(test_result)
|
178
|
-
end
|
179
|
-
|
180
|
-
def test_should_match_parameter_that_matches_all_values
|
181
|
-
test_result = run_as_test do
|
182
|
-
mock = mock()
|
183
|
-
mock.expects(:method).with(all_of('value_1', 'value_1'))
|
184
|
-
mock.method('value_1')
|
185
|
-
end
|
186
|
-
assert_passed(test_result)
|
187
|
-
end
|
188
|
-
|
189
|
-
def test_should_not_match_parameter_that_does_not_match_all_values
|
190
|
-
test_result = run_as_test do
|
191
|
-
mock = mock()
|
192
|
-
mock.expects(:method).with(all_of('value_1', 'value_2'))
|
193
|
-
mock.method('value_1')
|
194
|
-
end
|
195
|
-
assert_failed(test_result)
|
196
|
-
end
|
197
|
-
|
198
|
-
def test_should_match_parameter_that_matches_all_matchers
|
199
|
-
test_result = run_as_test do
|
200
|
-
mock = mock()
|
201
|
-
mock.expects(:method).with(has_key(:foo) & has_key(:bar))
|
202
|
-
mock.method(:foo => 'fooval', :bar => 'barval')
|
203
|
-
end
|
204
|
-
assert_passed(test_result)
|
205
|
-
end
|
206
|
-
|
207
|
-
def test_should_not_match_parameter_that_does_not_match_all_matchers
|
208
|
-
test_result = run_as_test do
|
209
|
-
mock = mock()
|
210
|
-
mock.expects(:method).with(has_key(:foo) & has_key(:bar))
|
211
|
-
mock.method(:foo => 'fooval', :baz => 'bazval')
|
212
|
-
end
|
213
|
-
assert_failed(test_result)
|
214
|
-
end
|
215
|
-
|
216
|
-
def test_should_match_parameter_that_responds_with_specified_value
|
217
|
-
klass = Class.new do
|
218
|
-
def quack
|
219
|
-
'quack'
|
220
|
-
end
|
221
|
-
end
|
222
|
-
duck = klass.new
|
223
|
-
test_result = run_as_test do
|
224
|
-
mock = mock()
|
225
|
-
mock.expects(:method).with(responds_with(:quack, 'quack'))
|
226
|
-
mock.method(duck)
|
227
|
-
end
|
228
|
-
assert_passed(test_result)
|
229
|
-
end
|
230
|
-
|
231
|
-
def test_should_not_match_parameter_that_does_not_respond_with_specified_value
|
232
|
-
klass = Class.new do
|
233
|
-
def quack
|
234
|
-
'woof'
|
235
|
-
end
|
236
|
-
end
|
237
|
-
duck = klass.new
|
238
|
-
test_result = run_as_test do
|
239
|
-
mock = mock()
|
240
|
-
mock.expects(:method).with(responds_with(:quack, 'quack'))
|
241
|
-
mock.method(duck)
|
242
|
-
end
|
243
|
-
assert_failed(test_result)
|
244
|
-
end
|
245
|
-
|
246
|
-
def test_should_match_parameter_that_has_identical_query_string
|
247
|
-
test_result = run_as_test do
|
248
|
-
mock = mock()
|
249
|
-
mock.expects(:method).with(has_equivalent_query_string('http://example.com/foo?a=1&b=2'))
|
250
|
-
mock.method('http://example.com/foo?a=1&b=2')
|
251
|
-
end
|
252
|
-
assert_passed(test_result)
|
253
|
-
end
|
254
|
-
|
255
|
-
def test_should_match_parameter_that_has_rearranged_query_string
|
256
|
-
test_result = run_as_test do
|
257
|
-
mock = mock()
|
258
|
-
mock.expects(:method).with(has_equivalent_query_string('http://example.com/foo?b=2&a=1'))
|
259
|
-
mock.method('http://example.com/foo?a=1&b=2')
|
260
|
-
end
|
261
|
-
assert_passed(test_result)
|
262
|
-
end
|
263
|
-
|
264
|
-
def test_should_not_match_parameter_that_does_not_have_the_same_query_parameters
|
265
|
-
test_result = run_as_test do
|
266
|
-
mock = mock()
|
267
|
-
mock.expects(:method).with(has_equivalent_query_string('http://example.com/foo?a=1'))
|
268
|
-
mock.method('http://example.com/foo?a=1&b=2')
|
269
|
-
end
|
270
|
-
assert_failed(test_result)
|
271
|
-
end
|
272
|
-
|
273
|
-
def test_should_not_match_parameter_that_has_no_query_parameters_when_they_are_expected
|
274
|
-
test_result = run_as_test do
|
275
|
-
mock = mock()
|
276
|
-
mock.expects(:method).with(has_equivalent_query_string('http://example.com/foo'))
|
277
|
-
mock.method('http://example.com/foo?a=1&b=2')
|
278
|
-
end
|
279
|
-
assert_failed(test_result)
|
280
|
-
end
|
281
|
-
|
282
|
-
def test_should_not_match_parameter_that_has_the_same_query_string_bit_which_differs_otherwise
|
283
|
-
test_result = run_as_test do
|
284
|
-
mock = mock()
|
285
|
-
mock.expects(:method).with(has_equivalent_query_string('http://a.example.com/foo?a=1&b=2'))
|
286
|
-
mock.method('http://b.example.com/foo?a=1&b=2')
|
287
|
-
end
|
288
|
-
assert_failed(test_result)
|
289
|
-
end
|
290
|
-
|
291
|
-
def test_should_match_parameter_with_no_domain_or_scheme
|
292
|
-
test_result = run_as_test do
|
293
|
-
mock = mock()
|
294
|
-
mock.expects(:method).with(has_equivalent_query_string('/foo?a=1&b=2'))
|
295
|
-
mock.method('/foo?a=1&b=2')
|
296
|
-
end
|
297
|
-
assert_passed(test_result)
|
298
|
-
end
|
299
|
-
|
300
|
-
def test_should_match_parameter_when_value_is_divisible_by_four
|
301
|
-
test_result = run_as_test do
|
302
|
-
mock = mock()
|
303
|
-
mock.expects(:method).with { |actual_value| actual_value % 4 == 0 }
|
304
|
-
mock.method(8)
|
305
|
-
end
|
306
|
-
assert_passed(test_result)
|
307
|
-
end
|
308
|
-
|
309
|
-
def test_should_not_match_parameter_when_value_is_not_divisible_by_four
|
310
|
-
test_result = run_as_test do
|
311
|
-
mock = mock()
|
312
|
-
mock.expects(:method).with { |actual_value| actual_value % 4 == 0 }
|
313
|
-
mock.method(9)
|
314
|
-
end
|
315
|
-
assert_failed(test_result)
|
316
|
-
end
|
317
|
-
|
318
|
-
def test_should_match_parameters_when_values_add_up_to_ten
|
319
|
-
test_result = run_as_test do
|
320
|
-
mock = mock()
|
321
|
-
matcher = lambda { |*values| values.inject(0) { |sum, n| sum + n } == 10 }
|
322
|
-
mock.expects(:method).with(&matcher)
|
323
|
-
mock.method(1, 2, 3, 4)
|
324
|
-
end
|
325
|
-
assert_passed(test_result)
|
326
|
-
end
|
327
|
-
|
328
|
-
def test_should_not_match_parameters_when_values_do_not_add_up_to_ten
|
329
|
-
test_result = run_as_test do
|
330
|
-
mock = mock()
|
331
|
-
matcher = lambda { |*values| values.inject(0) { |sum, n| sum + n } == 10 }
|
332
|
-
mock.expects(:method).with(&matcher)
|
333
|
-
mock.method(1, 2, 3, 4, 5)
|
334
|
-
end
|
335
|
-
assert_failed(test_result)
|
336
|
-
end
|
337
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class PartialMockTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_pass_if_all_expectations_are_satisfied
|
17
|
-
test_result = run_as_test do
|
18
|
-
partial_mock_one = "partial_mock_one"
|
19
|
-
partial_mock_two = "partial_mock_two"
|
20
|
-
|
21
|
-
partial_mock_one.expects(:first)
|
22
|
-
partial_mock_one.expects(:second)
|
23
|
-
partial_mock_two.expects(:third)
|
24
|
-
|
25
|
-
partial_mock_one.first
|
26
|
-
partial_mock_one.second
|
27
|
-
partial_mock_two.third
|
28
|
-
end
|
29
|
-
assert_passed(test_result)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_fail_if_all_expectations_are_not_satisfied
|
33
|
-
test_result = run_as_test do
|
34
|
-
partial_mock_one = "partial_mock_one"
|
35
|
-
partial_mock_two = "partial_mock_two"
|
36
|
-
|
37
|
-
partial_mock_one.expects(:first)
|
38
|
-
partial_mock_one.expects(:second)
|
39
|
-
partial_mock_two.expects(:third)
|
40
|
-
|
41
|
-
partial_mock_one.first
|
42
|
-
partial_mock_two.third
|
43
|
-
end
|
44
|
-
assert_failed(test_result)
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
@@ -1,88 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class PrependTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
if RUBY_VERSION >= '2.0'
|
17
|
-
|
18
|
-
module Mod1
|
19
|
-
def my_method
|
20
|
-
super + " World"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
module Mod2
|
25
|
-
def my_method
|
26
|
-
super + " Wide"
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
class Klass1
|
31
|
-
prepend Mod1
|
32
|
-
prepend Mod2
|
33
|
-
|
34
|
-
def my_method
|
35
|
-
"Hello"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
class Klass2
|
40
|
-
class << self
|
41
|
-
prepend Mod1
|
42
|
-
prepend Mod2
|
43
|
-
|
44
|
-
def my_method
|
45
|
-
"Hello"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_stubbing_any_instance_with_multiple_prepended_methods
|
51
|
-
assert_snapshot_unchanged(Klass1) do
|
52
|
-
test_result = run_as_test do
|
53
|
-
Klass1.any_instance.stubs(:my_method).returns("Bye World")
|
54
|
-
assert_equal "Bye World", Klass1.new.my_method
|
55
|
-
end
|
56
|
-
assert_passed(test_result)
|
57
|
-
end
|
58
|
-
assert_equal "Hello World Wide", Klass1.new.my_method
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_stubbing_instance_with_multiple_prepended_methods
|
62
|
-
object = Klass1.new
|
63
|
-
|
64
|
-
assert_snapshot_unchanged(object) do
|
65
|
-
test_result = run_as_test do
|
66
|
-
object.stubs(:my_method).returns("Bye World")
|
67
|
-
assert_equal "Bye World", object.my_method
|
68
|
-
assert_equal "Hello World Wide", Klass1.new.my_method
|
69
|
-
end
|
70
|
-
assert_passed(test_result)
|
71
|
-
end
|
72
|
-
assert_equal "Hello World Wide", object.my_method
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_stubbing_a_prepended_class_method
|
76
|
-
assert_snapshot_unchanged(Klass2) do
|
77
|
-
test_result = run_as_test do
|
78
|
-
Klass2.stubs(:my_method).returns("Bye World")
|
79
|
-
assert_equal "Bye World", Klass2.my_method
|
80
|
-
end
|
81
|
-
assert_passed(test_result)
|
82
|
-
end
|
83
|
-
assert_equal "Hello World Wide", Klass2.my_method
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class RaiseExceptionTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_raise_exception
|
17
|
-
exception_class = Class.new(StandardError)
|
18
|
-
test_result = run_as_test do
|
19
|
-
foo = stub('foo')
|
20
|
-
foo.stubs(:bar).raises(exception_class, "my-message")
|
21
|
-
exception = assert_raises(exception_class) { foo.bar }
|
22
|
-
assert_equal "my-message", exception.message
|
23
|
-
end
|
24
|
-
assert_passed(test_result)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_raise_two_different_exceptions
|
28
|
-
exception_one_class = Class.new(StandardError)
|
29
|
-
exception_two_class = Class.new(StandardError)
|
30
|
-
test_result = run_as_test do
|
31
|
-
foo = stub('foo')
|
32
|
-
foo.stubs(:bar).raises(exception_one_class).then.raises(exception_two_class)
|
33
|
-
assert_raises(exception_one_class) { foo.bar }
|
34
|
-
assert_raises(exception_two_class) { foo.bar }
|
35
|
-
end
|
36
|
-
assert_passed(test_result)
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class ReturnValueTest < Mocha::TestCase
|
5
|
-
|
6
|
-
include AcceptanceTest
|
7
|
-
|
8
|
-
def setup
|
9
|
-
setup_acceptance_test
|
10
|
-
end
|
11
|
-
|
12
|
-
def teardown
|
13
|
-
teardown_acceptance_test
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_build_mock_and_explicitly_add_an_expectation_with_a_return_value
|
17
|
-
test_result = run_as_test do
|
18
|
-
foo = mock('foo')
|
19
|
-
foo.expects(:bar).returns('bar')
|
20
|
-
assert_equal 'bar', foo.bar
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_build_mock_incorporating_two_expectations_with_return_values
|
26
|
-
test_result = run_as_test do
|
27
|
-
foo = mock('foo', :bar => 'bar', :baz => 'baz')
|
28
|
-
assert_equal 'bar', foo.bar
|
29
|
-
assert_equal 'baz', foo.baz
|
30
|
-
end
|
31
|
-
assert_passed(test_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_should_build_stub_and_explicitly_add_an_expectation_with_a_return_value
|
35
|
-
test_result = run_as_test do
|
36
|
-
foo = stub('foo')
|
37
|
-
foo.stubs(:bar).returns('bar')
|
38
|
-
assert_equal 'bar', foo.bar
|
39
|
-
end
|
40
|
-
assert_passed(test_result)
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_should_build_stub_incorporating_two_expectations_with_return_values
|
44
|
-
test_result = run_as_test do
|
45
|
-
foo = stub('foo', :bar => 'bar', :baz => 'baz')
|
46
|
-
assert_equal 'bar', foo.bar
|
47
|
-
assert_equal 'baz', foo.baz
|
48
|
-
end
|
49
|
-
assert_passed(test_result)
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|