mocha 1.2.1 → 1.16.1
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/Gemfile +29 -0
- data/README.md +104 -106
- data/RELEASE.md +277 -1
- data/Rakefile +46 -44
- data/gemfiles/Gemfile.minitest.latest +1 -0
- data/gemfiles/Gemfile.test-unit.latest +2 -5
- data/init.rb +1 -3
- data/lib/mocha/any_instance_method.rb +9 -62
- data/lib/mocha/api.rb +144 -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 +372 -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 +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/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 +5 -7
- 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_186_and_above.rb +4 -1
- data/lib/mocha/integration/test_unit.rb +7 -2
- data/lib/mocha/integration.rb +2 -5
- data/lib/mocha/invocation.rb +86 -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 +9 -0
- data/lib/mocha/mock.rb +102 -58
- 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 +6 -12
- data/lib/mocha/parameter_matchers/equals.rb +0 -6
- 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 +6 -7
- 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 +8 -1
- 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/state_machine.rb +33 -46
- data/lib/mocha/stubbed_method.rb +124 -0
- data/lib/mocha/stubbing_error.rb +2 -13
- data/lib/mocha/test_unit.rb +8 -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 +25 -247
- 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/lib/mocha/class_method.rb +0 -119
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +0 -58
- 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_272_test.rb +0 -52
- data/test/acceptance/issue_65_test.rb +0 -63
- data/test/acceptance/issue_70_test.rb +0 -55
- data/test/acceptance/mocha_example_test.rb +0 -98
- data/test/acceptance/mocha_test_result_test.rb +0 -84
- data/test/acceptance/mock_test.rb +0 -100
- data/test/acceptance/mock_with_initializer_block_test.rb +0 -51
- data/test/acceptance/mocked_methods_dispatch_test.rb +0 -78
- data/test/acceptance/multiple_expectations_failure_message_test.rb +0 -68
- data/test/acceptance/optional_parameters_test.rb +0 -70
- data/test/acceptance/parameter_matcher_test.rb +0 -337
- data/test/acceptance/partial_mocks_test.rb +0 -47
- data/test/acceptance/prepend_test.rb +0 -89
- data/test/acceptance/raise_exception_test.rb +0 -39
- data/test/acceptance/return_value_test.rb +0 -52
- data/test/acceptance/sequence_test.rb +0 -192
- data/test/acceptance/states_test.rb +0 -70
- data/test/acceptance/stub_any_instance_method_defined_on_superclass_test.rb +0 -34
- data/test/acceptance/stub_any_instance_method_test.rb +0 -280
- data/test/acceptance/stub_class_method_defined_on_active_record_association_proxy_test.rb +0 -106
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +0 -78
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +0 -75
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +0 -112
- data/test/acceptance/stub_everything_test.rb +0 -56
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +0 -93
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +0 -69
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +0 -78
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +0 -75
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +0 -70
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +0 -72
- data/test/acceptance/stub_method_defined_on_module_and_aliased_test.rb +0 -39
- data/test/acceptance/stub_module_method_test.rb +0 -163
- data/test/acceptance/stub_test.rb +0 -52
- data/test/acceptance/stubba_example_test.rb +0 -102
- data/test/acceptance/stubba_test_result_test.rb +0 -66
- data/test/acceptance/stubbing_error_backtrace_test.rb +0 -64
- data/test/acceptance/stubbing_frozen_object_test.rb +0 -88
- data/test/acceptance/stubbing_method_accepting_block_parameter_test.rb +0 -48
- data/test/acceptance/stubbing_method_unnecessarily_test.rb +0 -65
- data/test/acceptance/stubbing_nil_test.rb +0 -61
- data/test/acceptance/stubbing_non_existent_any_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_non_existent_class_method_test.rb +0 -157
- data/test/acceptance/stubbing_non_existent_instance_method_test.rb +0 -147
- data/test/acceptance/stubbing_non_public_any_instance_method_test.rb +0 -130
- data/test/acceptance/stubbing_non_public_class_method_test.rb +0 -163
- data/test/acceptance/stubbing_non_public_instance_method_test.rb +0 -143
- data/test/acceptance/stubbing_on_non_mock_object_test.rb +0 -64
- data/test/acceptance/stubbing_same_class_method_on_parent_and_child_classes_test.rb +0 -35
- data/test/acceptance/throw_test.rb +0 -45
- data/test/acceptance/unexpected_invocation_test.rb +0 -25
- data/test/acceptance/unstubbing_test.rb +0 -168
- data/test/assertions.rb +0 -8
- data/test/deprecation_disabler.rb +0 -15
- data/test/execution_point.rb +0 -36
- data/test/integration/mini_test_test.rb +0 -8
- data/test/integration/shared_tests.rb +0 -174
- data/test/integration/test_unit_test.rb +0 -8
- data/test/method_definer.rb +0 -24
- data/test/mini_test_result.rb +0 -90
- data/test/minitest_result.rb +0 -49
- data/test/simple_counter.rb +0 -13
- data/test/test_helper.rb +0 -50
- data/test/test_runner.rb +0 -58
- data/test/test_unit_result.rb +0 -20
- data/test/unit/any_instance_method_test.rb +0 -134
- data/test/unit/array_inspect_test.rb +0 -16
- data/test/unit/backtrace_filter_test.rb +0 -19
- data/test/unit/cardinality_test.rb +0 -56
- data/test/unit/central_test.rb +0 -100
- data/test/unit/change_state_side_effect_test.rb +0 -41
- data/test/unit/class_method_test.rb +0 -225
- data/test/unit/class_methods_test.rb +0 -40
- data/test/unit/configuration_test.rb +0 -38
- data/test/unit/date_time_inspect_test.rb +0 -21
- data/test/unit/exception_raiser_test.rb +0 -42
- data/test/unit/expectation_list_test.rb +0 -82
- data/test/unit/expectation_test.rb +0 -497
- data/test/unit/hash_inspect_test.rb +0 -16
- data/test/unit/hooks_test.rb +0 -29
- data/test/unit/in_state_ordering_constraint_test.rb +0 -43
- data/test/unit/method_matcher_test.rb +0 -28
- data/test/unit/mock_test.rb +0 -342
- data/test/unit/mockery_test.rb +0 -151
- data/test/unit/module_methods_test.rb +0 -19
- data/test/unit/multiple_yields_test.rb +0 -18
- data/test/unit/no_yields_test.rb +0 -18
- data/test/unit/object_inspect_test.rb +0 -39
- data/test/unit/object_methods_test.rb +0 -46
- data/test/unit/parameter_matchers/all_of_test.rb +0 -26
- data/test/unit/parameter_matchers/any_of_test.rb +0 -26
- data/test/unit/parameter_matchers/anything_test.rb +0 -21
- data/test/unit/parameter_matchers/equals_test.rb +0 -25
- data/test/unit/parameter_matchers/has_entries_test.rb +0 -51
- data/test/unit/parameter_matchers/has_entry_test.rb +0 -129
- data/test/unit/parameter_matchers/has_key_test.rb +0 -55
- data/test/unit/parameter_matchers/has_value_test.rb +0 -57
- data/test/unit/parameter_matchers/includes_test.rb +0 -102
- data/test/unit/parameter_matchers/instance_of_test.rb +0 -25
- data/test/unit/parameter_matchers/is_a_test.rb +0 -25
- data/test/unit/parameter_matchers/kind_of_test.rb +0 -25
- data/test/unit/parameter_matchers/not_test.rb +0 -26
- data/test/unit/parameter_matchers/regexp_matches_test.rb +0 -46
- data/test/unit/parameter_matchers/responds_with_test.rb +0 -32
- data/test/unit/parameter_matchers/stub_matcher.rb +0 -27
- data/test/unit/parameter_matchers/yaml_equivalent_test.rb +0 -25
- data/test/unit/parameters_matcher_test.rb +0 -121
- data/test/unit/receivers_test.rb +0 -66
- data/test/unit/return_values_test.rb +0 -63
- data/test/unit/sequence_test.rb +0 -104
- data/test/unit/single_return_value_test.rb +0 -14
- data/test/unit/single_yield_test.rb +0 -18
- data/test/unit/state_machine_test.rb +0 -98
- data/test/unit/string_inspect_test.rb +0 -11
- data/test/unit/thrower_test.rb +0 -20
- data/test/unit/yield_parameters_test.rb +0 -93
data/lib/mocha/class_method.rb
DELETED
@@ -1,119 +0,0 @@
|
|
1
|
-
require 'mocha/ruby_version'
|
2
|
-
require 'metaclass'
|
3
|
-
|
4
|
-
module Mocha
|
5
|
-
|
6
|
-
class ClassMethod
|
7
|
-
|
8
|
-
PrependedModule = Class.new(Module)
|
9
|
-
|
10
|
-
attr_reader :stubbee, :method
|
11
|
-
|
12
|
-
def initialize(stubbee, method)
|
13
|
-
@stubbee = stubbee
|
14
|
-
@original_method, @original_visibility = nil, nil
|
15
|
-
@method = PRE_RUBY_V19 ? method.to_s : method.to_sym
|
16
|
-
end
|
17
|
-
|
18
|
-
def stub
|
19
|
-
hide_original_method
|
20
|
-
define_new_method
|
21
|
-
end
|
22
|
-
|
23
|
-
def unstub
|
24
|
-
remove_new_method
|
25
|
-
restore_original_method
|
26
|
-
mock.unstub(method.to_sym)
|
27
|
-
unless mock.any_expectations?
|
28
|
-
reset_mocha
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def mock
|
33
|
-
stubbee.mocha
|
34
|
-
end
|
35
|
-
|
36
|
-
def reset_mocha
|
37
|
-
stubbee.reset_mocha
|
38
|
-
end
|
39
|
-
|
40
|
-
def hide_original_method
|
41
|
-
if @original_visibility = method_visibility(method)
|
42
|
-
begin
|
43
|
-
if RUBY_V2_PLUS
|
44
|
-
@definition_target = PrependedModule.new
|
45
|
-
stubbee.__metaclass__.__send__ :prepend, @definition_target
|
46
|
-
else
|
47
|
-
@original_method = stubbee._method(method)
|
48
|
-
if @original_method && @original_method.owner == stubbee.__metaclass__
|
49
|
-
stubbee.__metaclass__.send(:remove_method, method)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
rescue NameError
|
53
|
-
# deal with nasties like ActiveRecord::Associations::AssociationProxy
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
def define_new_method
|
59
|
-
definition_target.class_eval(<<-CODE, __FILE__, __LINE__ + 1)
|
60
|
-
def #{method}(*args, &block)
|
61
|
-
mocha.method_missing(:#{method}, *args, &block)
|
62
|
-
end
|
63
|
-
CODE
|
64
|
-
if @original_visibility
|
65
|
-
Module.instance_method(@original_visibility).bind(definition_target).call(method)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def remove_new_method
|
70
|
-
definition_target.send(:remove_method, method)
|
71
|
-
end
|
72
|
-
|
73
|
-
def restore_original_method
|
74
|
-
unless RUBY_V2_PLUS
|
75
|
-
if @original_method && @original_method.owner == stubbee.__metaclass__
|
76
|
-
if PRE_RUBY_V19
|
77
|
-
original_method = @original_method
|
78
|
-
stubbee.__metaclass__.send(:define_method, method) do |*args, &block|
|
79
|
-
original_method.call(*args, &block)
|
80
|
-
end
|
81
|
-
else
|
82
|
-
stubbee.__metaclass__.send(:define_method, method, @original_method)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
if @original_visibility
|
86
|
-
Module.instance_method(@original_visibility).bind(stubbee.__metaclass__).call(method)
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
def matches?(other)
|
92
|
-
return false unless (other.class == self.class)
|
93
|
-
(stubbee.object_id == other.stubbee.object_id) and (method == other.method)
|
94
|
-
end
|
95
|
-
|
96
|
-
alias_method :==, :eql?
|
97
|
-
|
98
|
-
def to_s
|
99
|
-
"#{stubbee}.#{method}"
|
100
|
-
end
|
101
|
-
|
102
|
-
def method_visibility(method)
|
103
|
-
symbol = method.to_sym
|
104
|
-
metaclass = stubbee.__metaclass__
|
105
|
-
|
106
|
-
(metaclass.public_method_defined?(symbol) && :public) ||
|
107
|
-
(metaclass.protected_method_defined?(symbol) && :protected) ||
|
108
|
-
(metaclass.private_method_defined?(symbol) && :private)
|
109
|
-
end
|
110
|
-
|
111
|
-
private
|
112
|
-
|
113
|
-
def definition_target
|
114
|
-
@definition_target ||= stubbee.__metaclass__
|
115
|
-
end
|
116
|
-
|
117
|
-
end
|
118
|
-
|
119
|
-
end
|
@@ -1,58 +0,0 @@
|
|
1
|
-
require 'mocha/integration/assertion_counter'
|
2
|
-
require 'mocha/integration/monkey_patcher'
|
3
|
-
require 'mocha/expectation_error'
|
4
|
-
|
5
|
-
module Mocha
|
6
|
-
module Integration
|
7
|
-
module TestUnit
|
8
|
-
module RubyVersion185AndBelow
|
9
|
-
def self.applicable_to?(test_unit_version, ruby_version)
|
10
|
-
Gem::Requirement.new('<= 1.2.3').satisfied_by?(test_unit_version) && Gem::Requirement.new('<= 1.8.5').satisfied_by?(ruby_version)
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.description
|
14
|
-
"monkey patch for standard library in Ruby <= v1.8.5"
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.included(mod)
|
18
|
-
MonkeyPatcher.apply(mod, RunMethodPatch)
|
19
|
-
end
|
20
|
-
|
21
|
-
module RunMethodPatch
|
22
|
-
def run(result)
|
23
|
-
assertion_counter = AssertionCounter.new(self)
|
24
|
-
yield(Test::Unit::TestCase::STARTED, name)
|
25
|
-
@_result = result
|
26
|
-
begin
|
27
|
-
begin
|
28
|
-
setup
|
29
|
-
__send__(@method_name)
|
30
|
-
mocha_verify(assertion_counter)
|
31
|
-
rescue Mocha::ExpectationError => e
|
32
|
-
add_failure(e.message, e.backtrace)
|
33
|
-
rescue Test::Unit::AssertionFailedError => e
|
34
|
-
add_failure(e.message, e.backtrace)
|
35
|
-
rescue StandardError, ScriptError
|
36
|
-
add_error($!)
|
37
|
-
ensure
|
38
|
-
begin
|
39
|
-
teardown
|
40
|
-
rescue Mocha::ExpectationError => e
|
41
|
-
add_failure(e.message, e.backtrace)
|
42
|
-
rescue Test::Unit::AssertionFailedError => e
|
43
|
-
add_failure(e.message, e.backtrace)
|
44
|
-
rescue StandardError, ScriptError
|
45
|
-
add_error($!)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
ensure
|
49
|
-
mocha_teardown
|
50
|
-
end
|
51
|
-
result.add_run
|
52
|
-
yield(Test::Unit::TestCase::FINISHED, name)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
data/lib/mocha/mini_test.rb
DELETED
data/lib/mocha/module_method.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'mocha/class_method'
|
2
|
-
|
3
|
-
module Mocha
|
4
|
-
|
5
|
-
class ModuleMethod < ClassMethod
|
6
|
-
|
7
|
-
def method_exists?(method)
|
8
|
-
return true if stubbee.public_methods(false).include?(method)
|
9
|
-
return true if stubbee.protected_methods(false).include?(method)
|
10
|
-
return true if stubbee.private_methods(false).include?(method)
|
11
|
-
return false
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
data/lib/mocha/module_methods.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
module Mocha
|
2
|
-
|
3
|
-
class MultipleYields
|
4
|
-
|
5
|
-
attr_reader :parameter_groups
|
6
|
-
|
7
|
-
def initialize(*parameter_groups)
|
8
|
-
@parameter_groups = parameter_groups
|
9
|
-
end
|
10
|
-
|
11
|
-
def each
|
12
|
-
@parameter_groups.each do |parameter_group|
|
13
|
-
yield(parameter_group)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
data/lib/mocha/no_yields.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'mocha/parameter_matchers/equals'
|
2
|
-
|
3
|
-
module Mocha
|
4
|
-
|
5
|
-
module ObjectMethods
|
6
|
-
# @private
|
7
|
-
def to_matcher
|
8
|
-
Mocha::ParameterMatchers::Equals.new(self)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
# @private
|
15
|
-
class Object
|
16
|
-
include Mocha::ObjectMethods
|
17
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require 'mocha/inspect'
|
2
|
-
|
3
|
-
module Mocha
|
4
|
-
|
5
|
-
class PrettyParameters
|
6
|
-
|
7
|
-
def initialize(params)
|
8
|
-
@params = params
|
9
|
-
@params_string = params.mocha_inspect
|
10
|
-
end
|
11
|
-
|
12
|
-
def pretty
|
13
|
-
remove_outer_array_braces!
|
14
|
-
remove_outer_hash_braces!
|
15
|
-
@params_string
|
16
|
-
end
|
17
|
-
|
18
|
-
def remove_outer_array_braces!
|
19
|
-
@params_string = @params_string.gsub(/^\[|\]$/, '')
|
20
|
-
end
|
21
|
-
|
22
|
-
def remove_outer_hash_braces!
|
23
|
-
@params_string = @params_string.gsub(/^\{|\}$/, '') if @params.length == 1
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
data/lib/mocha/single_yield.rb
DELETED
data/lib/mocha/standalone.rb
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
module Mocha
|
2
|
-
|
3
|
-
# Exception raised when an unexpected method is invoked
|
4
|
-
class UnexpectedInvocation
|
5
|
-
|
6
|
-
# @private
|
7
|
-
def initialize(mock, symbol, *arguments)
|
8
|
-
@mock, @symbol, @arguments = mock, symbol, arguments
|
9
|
-
end
|
10
|
-
|
11
|
-
# @private
|
12
|
-
def full_description
|
13
|
-
method_matcher = MethodMatcher.new(@symbol)
|
14
|
-
parameters_matcher = ParametersMatcher.new(@arguments)
|
15
|
-
method_signature = "#{@mock.mocha_inspect}.#{method_matcher.mocha_inspect}#{parameters_matcher.mocha_inspect}"
|
16
|
-
"unexpected invocation: #{method_signature}\n"
|
17
|
-
end
|
18
|
-
|
19
|
-
# @private
|
20
|
-
def short_description
|
21
|
-
"unexpected invocation: #{@symbol}(#{@arguments.join(', ')})"
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
data/lib/mocha_standalone.rb
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
require File.expand_path('../../test_helper', __FILE__)
|
2
|
-
require 'test_runner'
|
3
|
-
require 'mocha/configuration'
|
4
|
-
require 'introspection'
|
5
|
-
|
6
|
-
module AcceptanceTest
|
7
|
-
|
8
|
-
class FakeLogger
|
9
|
-
|
10
|
-
attr_reader :warnings
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@warnings = []
|
14
|
-
end
|
15
|
-
|
16
|
-
def warn(message)
|
17
|
-
@warnings << message
|
18
|
-
end
|
19
|
-
|
20
|
-
end
|
21
|
-
|
22
|
-
attr_reader :logger
|
23
|
-
|
24
|
-
include TestRunner
|
25
|
-
|
26
|
-
def setup_acceptance_test
|
27
|
-
Mocha::Configuration.reset_configuration
|
28
|
-
@logger = FakeLogger.new
|
29
|
-
mockery = Mocha::Mockery.instance
|
30
|
-
@original_logger = mockery.logger
|
31
|
-
mockery.logger = @logger
|
32
|
-
end
|
33
|
-
|
34
|
-
def teardown_acceptance_test
|
35
|
-
Mocha::Configuration.reset_configuration
|
36
|
-
Mocha::Mockery.instance.logger = @original_logger
|
37
|
-
end
|
38
|
-
|
39
|
-
include Introspection::Assertions
|
40
|
-
|
41
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class Bug18914Test < 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
|
-
class AlwaysEql
|
17
|
-
|
18
|
-
def my_method
|
19
|
-
true
|
20
|
-
end
|
21
|
-
|
22
|
-
def ==(o)
|
23
|
-
true
|
24
|
-
end
|
25
|
-
|
26
|
-
def eql?(o)
|
27
|
-
true
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_should_not_allow_stubbing_of_non_mock_instance_disrupted_by_legitimate_overriding_of_eql_method
|
33
|
-
|
34
|
-
always_eql_1 = AlwaysEql.new
|
35
|
-
always_eql_1.stubs(:my_method).returns(false)
|
36
|
-
|
37
|
-
always_eql_2 = AlwaysEql.new
|
38
|
-
always_eql_2.stubs(:my_method).returns(false)
|
39
|
-
|
40
|
-
assert_equal false, always_eql_2.my_method
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class Bug21465Test < 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_allow_expected_method_name_to_be_a_string
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock()
|
19
|
-
mock.expects('wibble')
|
20
|
-
mock.wibble
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_allow_stubbed_method_name_to_be_a_string
|
26
|
-
test_result = run_as_test do
|
27
|
-
mock = mock()
|
28
|
-
mock.stubs('wibble')
|
29
|
-
mock.wibble
|
30
|
-
end
|
31
|
-
assert_passed(test_result)
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class Bug21563Test < 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_allow_stubbing_of_verified_method
|
17
|
-
test_result = run_as_test do
|
18
|
-
object = Object.new
|
19
|
-
object.stubs(:verified?).returns(false)
|
20
|
-
assert !object.verified?
|
21
|
-
end
|
22
|
-
assert_passed(test_result)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class ExceptionRescueTest < 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_unexpected_invocation_exception_is_not_caught_by_standard_rescue
|
17
|
-
test_result = run_as_test do
|
18
|
-
mock = mock('mock')
|
19
|
-
begin
|
20
|
-
mock.some_method
|
21
|
-
rescue => e
|
22
|
-
flunk "should not rescue #{e.class}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
assert_failed(test_result)
|
26
|
-
assert_equal "unexpected invocation: #<Mock:mock>.some_method()", test_result.failure_message_lines[0]
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_invocation_never_expected_exception_is_not_caught_by_standard_rescue
|
30
|
-
test_result = run_as_test do
|
31
|
-
mock = mock('mock')
|
32
|
-
mock.expects(:some_method).never
|
33
|
-
begin
|
34
|
-
mock.some_method
|
35
|
-
rescue => e
|
36
|
-
flunk "should not rescue #{e.class}"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
assert_failed(test_result)
|
40
|
-
assert_equal "unexpected invocation: #<Mock:mock>.some_method()", test_result.failure_message_lines[0]
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_unsatisfied_expectation_exception_is_not_caught_by_standard_rescue
|
44
|
-
test_result = run_as_test do
|
45
|
-
mock = mock('mock')
|
46
|
-
mock.expects(:some_method)
|
47
|
-
end
|
48
|
-
assert_failed(test_result)
|
49
|
-
assert_equal [
|
50
|
-
"not all expectations were satisfied",
|
51
|
-
"unsatisfied expectations:",
|
52
|
-
"- expected exactly once, not yet invoked: #<Mock:mock>.some_method(any_parameters)"
|
53
|
-
], test_result.failure_message_lines
|
54
|
-
end
|
55
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
-
require 'mocha/setup'
|
3
|
-
|
4
|
-
class ExpectationsOnMultipleMethodsTest < 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_expect_calls_to_multiple_methods
|
17
|
-
instance = Class.new do
|
18
|
-
def my_instance_method_1
|
19
|
-
:original_return_value_1
|
20
|
-
end
|
21
|
-
def my_instance_method_2
|
22
|
-
:original_return_value_2
|
23
|
-
end
|
24
|
-
end.new
|
25
|
-
test_result = run_as_test do
|
26
|
-
instance.expects(
|
27
|
-
:my_instance_method_1 => :new_return_value_1,
|
28
|
-
:my_instance_method_2 => :new_return_value_2
|
29
|
-
)
|
30
|
-
assert_equal :new_return_value_1, instance.my_instance_method_1
|
31
|
-
assert_equal :new_return_value_2, instance.my_instance_method_2
|
32
|
-
end
|
33
|
-
assert_passed(test_result)
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_should_stub_calls_to_multiple_methods
|
37
|
-
instance = Class.new do
|
38
|
-
def my_instance_method_1
|
39
|
-
:original_return_value_1
|
40
|
-
end
|
41
|
-
def my_instance_method_2
|
42
|
-
:original_return_value_2
|
43
|
-
end
|
44
|
-
end.new
|
45
|
-
test_result = run_as_test do
|
46
|
-
instance.stubs(
|
47
|
-
:my_instance_method_1 => :new_return_value_1,
|
48
|
-
:my_instance_method_2 => :new_return_value_2
|
49
|
-
)
|
50
|
-
assert_equal :new_return_value_1, instance.my_instance_method_1
|
51
|
-
assert_equal :new_return_value_2, instance.my_instance_method_2
|
52
|
-
end
|
53
|
-
assert_passed(test_result)
|
54
|
-
end
|
55
|
-
end
|