1
require File.join(File.dirname(__FILE__), "..", "test_helper")
3
require 'method_definer'
7
class ObjectTest < Test::Unit::TestCase
11
def test_should_build_mocha
13
mocha = instance.mocha
15
assert mocha.is_a?(Mock)
18
def test_should_reuse_existing_mocha
20
mocha_1 = instance.mocha
21
mocha_2 = instance.mocha
22
assert_equal mocha_1, mocha_2
25
def test_should_reset_mocha
27
assert_nil instance.reset_mocha
30
def test_should_stub_instance_method
33
$stubba.expects(:stub).with(Mocha::InstanceMethod.new(instance, :method1))
34
instance.expects(:method1)
38
def test_should_build_and_store_expectation
42
expectation = instance.expects(:method1)
43
assert_equal [expectation], instance.mocha.expectations.to_a
46
def test_should_verify_expectations
50
instance.expects(:method1).with(:value1, :value2)
51
assert_raise(ExpectationError) { instance.verify }
54
def test_should_pass_backtrace_into_expects
59
mocha.define_instance_accessor(:expects_parameters)
60
mocha.define_instance_method(:expects) { |*parameters| self.expects_parameters = parameters }
61
backtrace = Object.new
62
instance.define_instance_method(:mocha) { mocha }
63
instance.define_instance_method(:caller) { backtrace }
64
instance.expects(:method1)
65
assert_equal [:method1, backtrace], mocha.expects_parameters
68
def test_should_pass_backtrace_into_stubs
73
mocha.define_instance_accessor(:stubs_parameters)
74
mocha.define_instance_method(:stubs) { |*parameters| self.stubs_parameters = parameters }
75
backtrace = Object.new
76
instance.define_instance_method(:mocha) { mocha }
77
instance.define_instance_method(:caller) { backtrace }
78
instance.stubs(:method1)
79
assert_equal [:method1, backtrace], mocha.stubs_parameters
82
def test_should_build_any_instance_object
84
any_instance = klass.any_instance
85
assert_not_nil any_instance
86
assert any_instance.is_a?(Class::AnyInstance)
89
def test_should_return_same_any_instance_object
91
any_instance_1 = klass.any_instance
92
any_instance_2 = klass.any_instance
93
assert_equal any_instance_1, any_instance_2
96
def test_should_stub_class_method
99
$stubba.expects(:stub).with(Mocha::ClassMethod.new(klass, :method1))
100
klass.expects(:method1)
104
def test_should_build_and_store_class_method_expectation
108
expectation = klass.expects(:method1)
109
assert_equal [expectation], klass.mocha.expectations.to_a
112
def test_should_stub_module_method
115
$stubba.expects(:stub).with(Mocha::ClassMethod.new(mod, :method1))
116
mod.expects(:method1)
120
def test_should_build_and_store_module_method_expectation
124
expectation = mod.expects(:method1)
125
assert_equal [expectation], mod.mocha.expectations.to_a
128
def test_should_use_stubba_instance_method_for_object
129
assert_equal Mocha::InstanceMethod, Object.new.stubba_method
132
def test_should_use_stubba_class_method_for_module
133
assert_equal Mocha::ClassMethod, Module.new.stubba_method
136
def test_should_use_stubba_class_method_for_class
137
assert_equal Mocha::ClassMethod, Class.new.stubba_method
140
def test_should_use_stubba_class_method_for_any_instance
141
assert_equal Mocha::AnyInstanceMethod, Class::AnyInstance.new(nil).stubba_method
144
def test_should_stub_self_for_object
146
assert_equal object, object.stubba_object
149
def test_should_stub_self_for_module
151
assert_equal mod, mod.stubba_object
154
def test_should_stub_self_for_class
156
assert_equal klass, klass.stubba_object
159
def test_should_stub_relevant_class_for_any_instance
161
any_instance = Class::AnyInstance.new(klass)
162
assert_equal klass, any_instance.stubba_object
b'\\ No newline at end of file'