mocha 0.10.5 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING.rdoc +1 -1
- data/README.rdoc +6 -4
- data/RELEASE.rdoc +12 -0
- data/Rakefile +29 -60
- data/doc/Mocha.html +112 -0
- data/doc/Mocha/API.html +898 -0
- data/doc/Mocha/ClassMethods.html +246 -0
- data/doc/Mocha/Configuration.html +471 -0
- data/doc/Mocha/Expectation.html +2570 -0
- data/doc/Mocha/Mock.html +830 -0
- data/doc/Mocha/ObjectMethods.html +668 -0
- data/doc/Mocha/ParameterMatchers.html +2715 -0
- data/doc/Mocha/ParameterMatchers/AllOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/AnyOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/AnyParameters.html +136 -0
- data/doc/Mocha/ParameterMatchers/Anything.html +136 -0
- data/doc/Mocha/ParameterMatchers/Base.html +419 -0
- data/doc/Mocha/ParameterMatchers/Equals.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasEntries.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasEntry.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasKey.html +137 -0
- data/doc/Mocha/ParameterMatchers/HasValue.html +137 -0
- data/doc/Mocha/ParameterMatchers/Includes.html +137 -0
- data/doc/Mocha/ParameterMatchers/InstanceOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/IsA.html +136 -0
- data/doc/Mocha/ParameterMatchers/KindOf.html +137 -0
- data/doc/Mocha/ParameterMatchers/Not.html +137 -0
- data/doc/Mocha/ParameterMatchers/Optionally.html +136 -0
- data/doc/Mocha/ParameterMatchers/QueryStringMatches.html +136 -0
- data/doc/Mocha/ParameterMatchers/RegexpMatches.html +137 -0
- data/doc/Mocha/ParameterMatchers/RespondsWith.html +137 -0
- data/doc/Mocha/ParameterMatchers/YamlEquivalent.html +137 -0
- data/doc/Mocha/Sequence.html +133 -0
- data/doc/Mocha/StateMachine.html +510 -0
- data/doc/Mocha/StateMachine/State.html +125 -0
- data/doc/Mocha/StateMachine/StatePredicate.html +125 -0
- data/doc/Mocha/StubbingError.html +134 -0
- data/doc/Mocha/UnexpectedInvocation.html +124 -0
- data/doc/_index.html +481 -0
- data/doc/class_list.html +47 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +55 -0
- data/doc/css/style.css +322 -0
- data/doc/file.COPYING.html +72 -0
- data/doc/file.MIT-LICENSE.html +86 -0
- data/doc/file.README.html +153 -0
- data/doc/file.RELEASE.html +933 -0
- data/doc/file.misc.html +108 -0
- data/doc/file.mocha.html +90 -0
- data/doc/file.stubba.html +129 -0
- data/doc/file_list.html +67 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +153 -0
- data/doc/js/app.js +205 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +16 -0
- data/doc/method_list.html +510 -0
- data/doc/top-level-namespace.html +105 -0
- data/lib/mocha/any_instance_method.rb +16 -11
- data/lib/mocha/api.rb +120 -106
- data/lib/mocha/argument_iterator.rb +6 -6
- data/lib/mocha/backtrace_filter.rb +1 -1
- data/lib/mocha/cardinality.rb +21 -21
- data/lib/mocha/central.rb +8 -8
- data/lib/mocha/change_state_side_effect.rb +5 -5
- data/lib/mocha/class_method.rb +14 -19
- data/lib/mocha/configuration.rb +47 -37
- data/lib/mocha/deprecation.rb +8 -8
- data/lib/mocha/exception_raiser.rb +7 -7
- data/lib/mocha/expectation.rb +173 -77
- data/lib/mocha/expectation_error.rb +2 -2
- data/lib/mocha/expectation_list.rb +11 -11
- data/lib/mocha/in_state_ordering_constraint.rb +5 -5
- data/lib/mocha/inspect.rb +8 -8
- data/lib/mocha/instance_method.rb +1 -17
- data/lib/mocha/integration.rb +9 -9
- data/lib/mocha/integration/mini_test/assertion_counter.rb +9 -9
- data/lib/mocha/integration/mini_test/exception_translation.rb +6 -6
- data/lib/mocha/integration/mini_test/version_13.rb +6 -6
- data/lib/mocha/integration/mini_test/version_140.rb +6 -6
- data/lib/mocha/integration/mini_test/version_141.rb +6 -6
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +7 -7
- data/lib/mocha/integration/mini_test/version_200.rb +7 -7
- data/lib/mocha/integration/test_unit/assertion_counter.rb +10 -10
- data/lib/mocha/integration/test_unit/gem_version_200.rb +6 -6
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +6 -6
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +6 -6
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +6 -6
- data/lib/mocha/is_a.rb +1 -1
- data/lib/mocha/logger.rb +6 -6
- data/lib/mocha/method_matcher.rb +7 -7
- data/lib/mocha/mock.rb +85 -48
- data/lib/mocha/mockery.rb +47 -33
- data/lib/mocha/module_method.rb +2 -2
- data/lib/mocha/multiple_yields.rb +9 -9
- data/lib/mocha/names.rb +18 -18
- data/lib/mocha/no_yields.rb +7 -7
- data/lib/mocha/object.rb +104 -75
- data/lib/mocha/parameter_matchers.rb +3 -3
- data/lib/mocha/parameter_matchers/all_of.rb +22 -12
- data/lib/mocha/parameter_matchers/any_of.rb +23 -12
- data/lib/mocha/parameter_matchers/any_parameters.rb +15 -8
- data/lib/mocha/parameter_matchers/anything.rb +20 -11
- data/lib/mocha/parameter_matchers/base.rb +35 -27
- data/lib/mocha/parameter_matchers/equals.rb +23 -12
- data/lib/mocha/parameter_matchers/has_entries.rb +22 -12
- data/lib/mocha/parameter_matchers/has_entry.rb +31 -13
- data/lib/mocha/parameter_matchers/has_key.rb +21 -11
- data/lib/mocha/parameter_matchers/has_value.rb +21 -11
- data/lib/mocha/parameter_matchers/includes.rb +15 -5
- data/lib/mocha/parameter_matchers/instance_of.rb +23 -12
- data/lib/mocha/parameter_matchers/is_a.rb +23 -12
- data/lib/mocha/parameter_matchers/kind_of.rb +23 -12
- data/lib/mocha/parameter_matchers/not.rb +22 -12
- data/lib/mocha/parameter_matchers/object.rb +5 -3
- data/lib/mocha/parameter_matchers/optionally.rb +24 -12
- data/lib/mocha/parameter_matchers/query_string.rb +14 -3
- data/lib/mocha/parameter_matchers/regexp_matches.rb +21 -11
- data/lib/mocha/parameter_matchers/responds_with.rb +17 -6
- data/lib/mocha/parameter_matchers/yaml_equivalent.rb +16 -6
- data/lib/mocha/parameters_matcher.rb +8 -8
- data/lib/mocha/pretty_parameters.rb +7 -7
- data/lib/mocha/return_values.rb +11 -11
- data/lib/mocha/sequence.rb +23 -14
- data/lib/mocha/single_return_value.rb +7 -7
- data/lib/mocha/single_yield.rb +9 -9
- data/lib/mocha/standalone.rb +1 -1
- data/lib/mocha/state_machine.rb +61 -46
- data/lib/mocha/stubbing_error.rb +8 -5
- data/lib/mocha/thrower.rb +2 -2
- data/lib/mocha/unexpected_invocation.rb +9 -6
- data/lib/mocha/version.rb +1 -1
- data/lib/mocha/yield_parameters.rb +10 -10
- data/lib/mocha_standalone.rb +1 -1
- data/mocha.gemspec +4 -7
- data/test/acceptance/acceptance_test_helper.rb +10 -10
- data/test/acceptance/api_test.rb +20 -20
- data/test/acceptance/bug_18914_test.rb +12 -12
- data/test/acceptance/bug_21465_test.rb +6 -6
- data/test/acceptance/bug_21563_test.rb +5 -5
- data/test/acceptance/exception_rescue_test.rb +1 -1
- data/test/acceptance/expected_invocation_count_test.rb +17 -17
- data/test/acceptance/failure_messages_test.rb +13 -13
- data/test/acceptance/minitest_test.rb +39 -39
- data/test/acceptance/mocha_example_test.rb +26 -26
- data/test/acceptance/mocha_test_result_test.rb +13 -13
- data/test/acceptance/mock_test.rb +5 -5
- data/test/acceptance/mock_with_initializer_block_test.rb +5 -5
- data/test/acceptance/mocked_methods_dispatch_test.rb +4 -4
- data/test/acceptance/multiple_expectations_failure_message_test.rb +2 -2
- data/test/acceptance/optional_parameters_test.rb +5 -5
- data/test/acceptance/parameter_matcher_test.rb +18 -18
- data/test/acceptance/partial_mocks_test.rb +9 -9
- data/test/acceptance/raise_exception_test.rb +1 -1
- data/test/acceptance/return_value_test.rb +5 -5
- data/test/acceptance/sequence_test.rb +29 -29
- data/test/acceptance/states_test.rb +17 -17
- data/test/acceptance/stub_any_instance_method_test.rb +13 -13
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +7 -7
- data/test/acceptance/stub_everything_test.rb +5 -5
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +1 -1
- data/test/acceptance/stub_module_method_test.rb +17 -17
- data/test/acceptance/stub_test.rb +5 -5
- data/test/acceptance/stubba_example_test.rb +24 -24
- data/test/acceptance/stubba_test_result_test.rb +11 -11
- data/test/acceptance/stubbing_error_backtrace_test.rb +6 -6
- data/test/acceptance/stubbing_frozen_object_test.rb +88 -0
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +9 -9
- data/test/acceptance/stubbing_nil_test.rb +59 -0
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +13 -13
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +15 -15
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +14 -14
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +13 -13
- data/test/acceptance/stubbing_non_public_class_method_test.rb +12 -12
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +12 -12
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +9 -9
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +35 -0
- data/test/acceptance/throw_test.rb +1 -1
- data/test/deprecation_disabler.rb +1 -1
- data/test/execution_point.rb +7 -7
- data/test/method_definer.rb +1 -1
- data/test/mini_test_result.rb +21 -21
- data/test/simple_counter.rb +5 -5
- data/test/test_helper.rb +1 -1
- data/test/test_runner.rb +22 -24
- data/test/test_unit_result.rb +20 -0
- data/test/unit/any_instance_method_test.rb +28 -32
- data/test/unit/array_inspect_test.rb +3 -3
- data/test/unit/backtrace_filter_test.rb +3 -3
- data/test/unit/cardinality_test.rb +12 -12
- data/test/unit/central_test.rb +18 -18
- data/test/unit/change_state_side_effect_test.rb +12 -12
- data/test/unit/class_method_test.rb +33 -91
- data/test/unit/date_time_inspect_test.rb +4 -4
- data/test/unit/exception_raiser_test.rb +5 -5
- data/test/unit/expectation_list_test.rb +7 -7
- data/test/unit/expectation_test.rb +66 -66
- data/test/unit/hash_inspect_test.rb +4 -4
- data/test/unit/in_state_ordering_constraint_test.rb +13 -13
- data/test/unit/method_matcher_test.rb +3 -3
- data/test/unit/mock_test.rb +40 -40
- data/test/unit/mockery_test.rb +25 -25
- data/test/unit/multiple_yields_test.rb +2 -2
- data/test/unit/no_yields_test.rb +2 -2
- data/test/unit/object_inspect_test.rb +4 -4
- data/test/unit/object_test.rb +15 -15
- data/test/unit/parameter_matchers/all_of_test.rb +6 -6
- data/test/unit/parameter_matchers/any_of_test.rb +6 -6
- data/test/unit/parameter_matchers/anything_test.rb +5 -5
- data/test/unit/parameter_matchers/has_entries_test.rb +10 -10
- data/test/unit/parameter_matchers/has_entry_test.rb +13 -13
- data/test/unit/parameter_matchers/has_key_test.rb +11 -11
- data/test/unit/parameter_matchers/has_value_test.rb +12 -12
- data/test/unit/parameter_matchers/includes_test.rb +4 -4
- data/test/unit/parameter_matchers/not_test.rb +6 -6
- data/test/unit/parameter_matchers/regexp_matches_test.rb +9 -9
- data/test/unit/parameter_matchers/responds_with_test.rb +6 -6
- data/test/unit/parameter_matchers/stub_matcher.rb +4 -4
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +6 -6
- data/test/unit/parameters_matcher_test.rb +16 -16
- data/test/unit/return_values_test.rb +5 -5
- data/test/unit/sequence_test.rb +10 -10
- data/test/unit/single_return_value_test.rb +3 -3
- data/test/unit/single_yield_test.rb +2 -2
- data/test/unit/state_machine_test.rb +19 -19
- data/test/unit/string_inspect_test.rb +2 -2
- data/test/unit/thrower_test.rb +1 -1
- data/test/unit/yield_parameters_test.rb +11 -11
- metadata +113 -101
data/test/unit/central_test.rb
CHANGED
@@ -5,47 +5,47 @@ require 'mocha/mock'
|
|
5
5
|
require 'method_definer'
|
6
6
|
|
7
7
|
class CentralTest < Test::Unit::TestCase
|
8
|
-
|
8
|
+
|
9
9
|
include Mocha
|
10
|
-
|
10
|
+
|
11
11
|
def test_should_start_with_empty_stubba_methods
|
12
12
|
stubba = Central.new
|
13
|
-
|
13
|
+
|
14
14
|
assert_equal [], stubba.stubba_methods
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_should_stub_method_if_not_already_stubbed
|
18
18
|
method = build_mock
|
19
19
|
method.expects(:stub)
|
20
20
|
stubba = Central.new
|
21
|
-
|
21
|
+
|
22
22
|
stubba.stub(method)
|
23
|
-
|
23
|
+
|
24
24
|
assert method.__verified__?
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def test_should_not_stub_method_if_already_stubbed
|
28
28
|
method = build_mock
|
29
29
|
method.stubs(:matches?).returns(true)
|
30
30
|
method.expects(:stub).times(0)
|
31
31
|
stubba = Central.new
|
32
32
|
stubba.stubba_methods = [method]
|
33
|
-
|
33
|
+
|
34
34
|
stubba.stub(method)
|
35
|
-
|
35
|
+
|
36
36
|
assert method.__verified__?
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def test_should_record_method
|
40
40
|
method = build_mock
|
41
41
|
method.expects(:stub)
|
42
42
|
stubba = Central.new
|
43
|
-
|
43
|
+
|
44
44
|
stubba.stub(method)
|
45
|
-
|
45
|
+
|
46
46
|
assert_equal [method], stubba.stubba_methods
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
def test_should_unstub_specified_method
|
50
50
|
stubba = Central.new
|
51
51
|
method_1 = build_mock
|
@@ -56,11 +56,11 @@ class CentralTest < Test::Unit::TestCase
|
|
56
56
|
stubba.stubba_methods = [method_1, method_2]
|
57
57
|
|
58
58
|
stubba.unstub(method_2)
|
59
|
-
|
59
|
+
|
60
60
|
assert_equal [method_1], stubba.stubba_methods
|
61
61
|
assert method_2.__verified__?
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
def test_should_not_unstub_specified_method_if_not_already_stubbed
|
65
65
|
stubba = Central.new
|
66
66
|
method_1 = build_mock
|
@@ -70,11 +70,11 @@ class CentralTest < Test::Unit::TestCase
|
|
70
70
|
stubba.stubba_methods = [method_1]
|
71
71
|
|
72
72
|
stubba.unstub(method_2)
|
73
|
-
|
73
|
+
|
74
74
|
assert_equal [method_1], stubba.stubba_methods
|
75
75
|
assert method_2.__verified__?
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def test_should_unstub_all_methods
|
79
79
|
stubba = Central.new
|
80
80
|
method_1 = build_mock
|
@@ -86,7 +86,7 @@ class CentralTest < Test::Unit::TestCase
|
|
86
86
|
stubba.stubba_methods = [method_1, method_2]
|
87
87
|
|
88
88
|
stubba.unstub_all
|
89
|
-
|
89
|
+
|
90
90
|
assert_equal [], stubba.stubba_methods
|
91
91
|
assert method_1.__verified__?
|
92
92
|
assert method_2.__verified__?
|
@@ -3,39 +3,39 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
3
3
|
require 'mocha/change_state_side_effect'
|
4
4
|
|
5
5
|
class ChangeStateSideEffectTest < Test::Unit::TestCase
|
6
|
-
|
6
|
+
|
7
7
|
include Mocha
|
8
|
-
|
8
|
+
|
9
9
|
class FakeState
|
10
|
-
|
10
|
+
|
11
11
|
attr_reader :active
|
12
12
|
attr_writer :description
|
13
|
-
|
13
|
+
|
14
14
|
def activate
|
15
15
|
@active = true
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def mocha_inspect
|
19
19
|
@description
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def test_should_activate_the_given_state
|
25
25
|
state = FakeState.new
|
26
26
|
side_effect = ChangeStateSideEffect.new(state)
|
27
|
-
|
27
|
+
|
28
28
|
side_effect.perform
|
29
|
-
|
29
|
+
|
30
30
|
assert state.active
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
def test_should_describe_itself_in_terms_of_the_activated_state
|
34
34
|
state = FakeState.new
|
35
35
|
state.description = 'the-new-state'
|
36
36
|
side_effect = ChangeStateSideEffect.new(state)
|
37
|
-
|
37
|
+
|
38
38
|
assert_equal 'then the-new-state', side_effect.mocha_inspect
|
39
39
|
end
|
40
|
-
|
40
|
+
|
41
41
|
end
|
@@ -5,126 +5,68 @@ require 'mocha/mock'
|
|
5
5
|
require 'mocha/class_method'
|
6
6
|
|
7
7
|
class ClassMethodTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
include Mocha
|
10
8
|
|
11
|
-
|
12
|
-
method = ClassMethod.new(nil, :original_method_name)
|
13
|
-
assert_match(/^__stubba__/, method.hidden_method.to_s)
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_provide_hidden_version_of_method_name_ending_with_suffix
|
17
|
-
method = ClassMethod.new(nil, :original_method_name)
|
18
|
-
assert_match(/__stubba__$/, method.hidden_method.to_s)
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_provide_hidden_version_of_method_name_including_original_method_name
|
22
|
-
method = ClassMethod.new(nil, :original_method_name)
|
23
|
-
assert_match(/original_method_name/, method.hidden_method.to_s)
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_provide_hidden_version_of_method_name_substituting_question_mark
|
27
|
-
method = ClassMethod.new(nil, :question_mark?)
|
28
|
-
assert_no_match(/\?/, method.hidden_method.to_s)
|
29
|
-
assert_match(/question_mark_substituted_character_63/, method.hidden_method.to_s)
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_provide_hidden_version_of_method_name_substituting_exclamation_mark
|
33
|
-
method = ClassMethod.new(nil, :exclamation_mark!)
|
34
|
-
assert_no_match(/!/, method.hidden_method.to_s)
|
35
|
-
assert_match(/exclamation_mark_substituted_character_33/, method.hidden_method.to_s)
|
36
|
-
end
|
37
|
-
|
38
|
-
def test_should_provide_hidden_version_of_method_name_substituting_equals_sign
|
39
|
-
method = ClassMethod.new(nil, :equals_sign=)
|
40
|
-
assert_no_match(/\=/, method.hidden_method.to_s)
|
41
|
-
assert_match(/equals_sign_substituted_character_61/, method.hidden_method.to_s)
|
42
|
-
end
|
9
|
+
include Mocha
|
43
10
|
|
44
|
-
def test_should_provide_hidden_version_of_method_name_substituting_brackets
|
45
|
-
method = ClassMethod.new(nil, :[])
|
46
|
-
assert_no_match(/\[\]/, method.hidden_method.to_s)
|
47
|
-
assert_match(/substituted_character_91__substituted_character_93/, method.hidden_method.to_s)
|
48
|
-
end
|
49
|
-
|
50
|
-
def test_should_provide_hidden_version_of_method_name_substituting_plus_sign
|
51
|
-
method = ClassMethod.new(nil, :+)
|
52
|
-
assert_no_match(/\+/, method.hidden_method.to_s)
|
53
|
-
assert_match(/substituted_character_43/, method.hidden_method.to_s)
|
54
|
-
end
|
55
|
-
|
56
11
|
def test_should_hide_original_method
|
57
12
|
klass = Class.new { def self.method_x; end }
|
58
13
|
method = ClassMethod.new(klass, :method_x)
|
59
|
-
hidden_method_x = method.hidden_method
|
60
|
-
|
61
|
-
method.hide_original_method
|
62
14
|
|
63
|
-
assert klass.respond_to?(hidden_method_x)
|
64
|
-
end
|
65
|
-
|
66
|
-
def test_should_respond_to_original_method_name_after_original_method_has_been_hidden
|
67
|
-
klass = Class.new { def self.original_method_name; end }
|
68
|
-
method = ClassMethod.new(klass, :original_method_name)
|
69
|
-
|
70
15
|
method.hide_original_method
|
71
16
|
|
72
|
-
|
17
|
+
assert_equal false, klass.respond_to?(:method_x)
|
73
18
|
end
|
74
|
-
|
75
|
-
def
|
19
|
+
|
20
|
+
def test_should_not_raise_error_hiding_method_that_isnt_defined
|
76
21
|
klass = Class.new
|
77
22
|
method = ClassMethod.new(klass, :method_x)
|
78
|
-
hidden_method_x = method.hidden_method
|
79
|
-
|
80
|
-
method.hide_original_method
|
81
23
|
|
82
|
-
|
24
|
+
assert_nothing_raised { method.hide_original_method }
|
83
25
|
end
|
84
|
-
|
26
|
+
|
85
27
|
def test_should_define_a_new_method_which_should_call_mocha_method_missing
|
86
28
|
klass = Class.new { def self.method_x; end }
|
87
29
|
mocha = build_mock
|
88
30
|
klass.define_instance_method(:mocha) { mocha }
|
89
31
|
mocha.expects(:method_x).with(:param1, :param2).returns(:result)
|
90
32
|
method = ClassMethod.new(klass, :method_x)
|
91
|
-
|
33
|
+
|
92
34
|
method.hide_original_method
|
93
35
|
method.define_new_method
|
94
36
|
result = klass.method_x(:param1, :param2)
|
95
|
-
|
37
|
+
|
96
38
|
assert_equal :result, result
|
97
39
|
assert mocha.__verified__?
|
98
40
|
end
|
99
|
-
|
41
|
+
|
100
42
|
def test_should_remove_new_method
|
101
43
|
klass = Class.new { def self.method_x; end }
|
102
44
|
method = ClassMethod.new(klass, :method_x)
|
103
|
-
|
45
|
+
|
104
46
|
method.remove_new_method
|
105
|
-
|
47
|
+
|
106
48
|
assert_equal false, klass.respond_to?(:method_x)
|
107
49
|
end
|
108
50
|
|
109
51
|
def test_should_restore_original_method
|
110
|
-
klass = Class.new { def self.method_x; end }
|
52
|
+
klass = Class.new { def self.method_x; :original_result; end }
|
111
53
|
method = ClassMethod.new(klass, :method_x)
|
112
|
-
hidden_method_x = method.hidden_method.to_sym
|
113
|
-
klass.define_instance_method(hidden_method_x) { :original_result }
|
114
54
|
|
55
|
+
method.hide_original_method
|
56
|
+
method.define_new_method
|
115
57
|
method.remove_new_method
|
116
58
|
method.restore_original_method
|
117
|
-
|
118
|
-
|
119
|
-
assert_equal
|
59
|
+
|
60
|
+
assert klass.respond_to?(:method_x)
|
61
|
+
assert_equal :original_result, klass.method_x
|
120
62
|
end
|
121
63
|
|
122
|
-
def
|
64
|
+
def test_should_not_restore_original_method_if_none_was_defined_in_first_place
|
123
65
|
klass = Class.new { def self.method_x; :new_result; end }
|
124
66
|
method = ClassMethod.new(klass, :method_x)
|
125
67
|
|
126
68
|
method.restore_original_method
|
127
|
-
|
69
|
+
|
128
70
|
assert_equal :new_result, klass.method_x
|
129
71
|
end
|
130
72
|
|
@@ -134,9 +76,9 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
134
76
|
method.hide_original_method
|
135
77
|
method.define_instance_accessor(:hide_called)
|
136
78
|
method.replace_instance_method(:hide_original_method) { self.hide_called = true }
|
137
|
-
|
79
|
+
|
138
80
|
method.stub
|
139
|
-
|
81
|
+
|
140
82
|
assert method.hide_called
|
141
83
|
end
|
142
84
|
|
@@ -145,12 +87,12 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
145
87
|
method = ClassMethod.new(klass, :method_x)
|
146
88
|
method.define_instance_accessor(:define_called)
|
147
89
|
method.replace_instance_method(:define_new_method) { self.define_called = true }
|
148
|
-
|
90
|
+
|
149
91
|
method.stub
|
150
|
-
|
92
|
+
|
151
93
|
assert method.define_called
|
152
94
|
end
|
153
|
-
|
95
|
+
|
154
96
|
def test_should_call_remove_new_method
|
155
97
|
klass = Class.new { def self.method_x; end }
|
156
98
|
method = ClassMethod.new(klass, :method_x)
|
@@ -158,9 +100,9 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
158
100
|
klass.define_instance_method(:mocha) { mocha }
|
159
101
|
method.define_instance_accessor(:remove_called)
|
160
102
|
method.replace_instance_method(:remove_new_method) { self.remove_called = true }
|
161
|
-
|
103
|
+
|
162
104
|
method.unstub
|
163
|
-
|
105
|
+
|
164
106
|
assert method.remove_called
|
165
107
|
end
|
166
108
|
|
@@ -171,9 +113,9 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
171
113
|
method = ClassMethod.new(klass, :method_x)
|
172
114
|
method.define_instance_accessor(:restore_called)
|
173
115
|
method.replace_instance_method(:restore_original_method) { self.restore_called = true }
|
174
|
-
|
116
|
+
|
175
117
|
method.unstub
|
176
|
-
|
118
|
+
|
177
119
|
assert method.restore_called
|
178
120
|
end
|
179
121
|
|
@@ -184,7 +126,7 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
184
126
|
mocha = Class.new { class << self; attr_accessor :unstub_method; end; def self.unstub(method); self.unstub_method = method; end; }
|
185
127
|
mocha.define_instance_method(:any_expectations?) { true }
|
186
128
|
method.replace_instance_method(:mock) { mocha }
|
187
|
-
|
129
|
+
|
188
130
|
method.unstub
|
189
131
|
assert_equal mocha.unstub_method, :method_x
|
190
132
|
end
|
@@ -214,7 +156,7 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
214
156
|
method = ClassMethod.new(stubbee, :method_name)
|
215
157
|
assert_equal stubbee.mocha, method.mock
|
216
158
|
end
|
217
|
-
|
159
|
+
|
218
160
|
def test_should_not_match_if_other_object_has_a_different_class
|
219
161
|
class_method = ClassMethod.new(Object.new, :method)
|
220
162
|
other_object = Object.new
|
@@ -228,21 +170,21 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
228
170
|
class_method_2 = ClassMethod.new(stubbee_2, :method)
|
229
171
|
assert !class_method_1.matches?(class_method_2)
|
230
172
|
end
|
231
|
-
|
173
|
+
|
232
174
|
def test_should_not_match_if_other_class_method_has_different_method
|
233
175
|
stubbee = Object.new
|
234
176
|
class_method_1 = ClassMethod.new(stubbee, :method_1)
|
235
177
|
class_method_2 = ClassMethod.new(stubbee, :method_2)
|
236
178
|
assert !class_method_1.matches?(class_method_2)
|
237
179
|
end
|
238
|
-
|
180
|
+
|
239
181
|
def test_should_match_if_other_class_method_has_same_stubbee_and_same_method_so_no_attempt_is_made_to_stub_a_method_twice
|
240
182
|
stubbee = Object.new
|
241
183
|
class_method_1 = ClassMethod.new(stubbee, :method)
|
242
184
|
class_method_2 = ClassMethod.new(stubbee, :method)
|
243
185
|
assert class_method_1.matches?(class_method_2)
|
244
186
|
end
|
245
|
-
|
187
|
+
|
246
188
|
def test_should_match_if_other_class_method_has_same_stubbee_and_same_method_but_stubbee_equal_method_lies_like_active_record_association_proxy
|
247
189
|
stubbee = Class.new do
|
248
190
|
def equal?(other); false; end
|
@@ -2,20 +2,20 @@ require File.expand_path('../../test_helper', __FILE__)
|
|
2
2
|
require 'mocha/inspect'
|
3
3
|
|
4
4
|
class DateTimeInspectTest < Test::Unit::TestCase
|
5
|
-
|
5
|
+
|
6
6
|
def test_should_use_include_date_in_seconds
|
7
7
|
time = Time.now
|
8
8
|
assert_equal "#{time.inspect} (#{time.to_f} secs)", time.mocha_inspect
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def test_should_use_to_s_for_date
|
12
12
|
date = Date.new(2006, 1, 1)
|
13
13
|
assert_equal date.to_s, date.mocha_inspect
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
def test_should_use_to_s_for_datetime
|
17
17
|
datetime = DateTime.new(2006, 1, 1)
|
18
18
|
assert_equal datetime.to_s, datetime.mocha_inspect
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
end
|
@@ -4,9 +4,9 @@ require 'mocha/exception_raiser'
|
|
4
4
|
require 'timeout'
|
5
5
|
|
6
6
|
class ExceptionRaiserTest < Test::Unit::TestCase
|
7
|
-
|
7
|
+
|
8
8
|
include Mocha
|
9
|
-
|
9
|
+
|
10
10
|
def test_should_raise_exception_with_specified_class_and_default_message
|
11
11
|
exception_class = Class.new(StandardError)
|
12
12
|
raiser = ExceptionRaiser.new(exception_class, nil)
|
@@ -20,14 +20,14 @@ class ExceptionRaiserTest < Test::Unit::TestCase
|
|
20
20
|
exception = assert_raises(exception_class) { raiser.evaluate }
|
21
21
|
assert_equal 'message', exception.message
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def test_should_raise_exception_instance
|
25
25
|
exception_class = Class.new(StandardError)
|
26
26
|
raiser = ExceptionRaiser.new(exception_class.new('message'), nil)
|
27
27
|
exception = assert_raises(exception_class) { raiser.evaluate }
|
28
28
|
assert_equal 'message', exception.message
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
def test_should_raise_interrupt_exception_with_default_message_so_it_works_in_ruby_1_8_6
|
32
32
|
raiser = ExceptionRaiser.new(Interrupt, nil)
|
33
33
|
assert_raises(Interrupt) { raiser.evaluate }
|
@@ -39,4 +39,4 @@ class ExceptionRaiserTest < Test::Unit::TestCase
|
|
39
39
|
assert_raises(exception_class) { raiser.evaluate }
|
40
40
|
end
|
41
41
|
|
42
|
-
end
|
42
|
+
end
|
@@ -5,15 +5,15 @@ require 'set'
|
|
5
5
|
require 'method_definer'
|
6
6
|
|
7
7
|
class ExpectationListTest < Test::Unit::TestCase
|
8
|
-
|
8
|
+
|
9
9
|
include Mocha
|
10
|
-
|
10
|
+
|
11
11
|
def test_should_return_added_expectation
|
12
12
|
expectation_list = ExpectationList.new
|
13
13
|
expectation = Expectation.new(nil, :my_method)
|
14
14
|
assert_same expectation, expectation_list.add(expectation)
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_should_find_matching_expectation
|
18
18
|
expectation_list = ExpectationList.new
|
19
19
|
expectation1 = Expectation.new(nil, :my_method).with(:argument1, :argument2)
|
@@ -36,7 +36,7 @@ class ExpectationListTest < Test::Unit::TestCase
|
|
36
36
|
assert_nil expectation_list.match(:method_one, :argument3, :argument4)
|
37
37
|
assert_same expectation3, expectation_list.match(:method_two)
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
def test_should_find_most_recent_matching_expectation
|
41
41
|
expectation_list = ExpectationList.new
|
42
42
|
expectation1 = Expectation.new(nil, :my_method).with(:argument1, :argument2)
|
@@ -45,7 +45,7 @@ class ExpectationListTest < Test::Unit::TestCase
|
|
45
45
|
expectation_list.add(expectation2)
|
46
46
|
assert_same expectation2, expectation_list.match(:my_method, :argument1, :argument2)
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
def test_should_find_matching_expectation_allowing_invocation
|
50
50
|
expectation_list = ExpectationList.new
|
51
51
|
expectation1 = Expectation.new(nil, :my_method).with(:argument1, :argument2)
|
@@ -56,7 +56,7 @@ class ExpectationListTest < Test::Unit::TestCase
|
|
56
56
|
expectation_list.add(expectation2)
|
57
57
|
assert_same expectation1, expectation_list.match_allowing_invocation(:my_method, :argument1, :argument2)
|
58
58
|
end
|
59
|
-
|
59
|
+
|
60
60
|
def test_should_find_most_recent_matching_expectation_allowing_invocation
|
61
61
|
expectation_list = ExpectationList.new
|
62
62
|
expectation1 = Expectation.new(nil, :my_method)
|
@@ -67,5 +67,5 @@ class ExpectationListTest < Test::Unit::TestCase
|
|
67
67
|
expectation_list.add(expectation2)
|
68
68
|
assert_same expectation1, expectation_list.match_allowing_invocation(:my_method)
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
end
|