1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
require File.expand_path('../../test_helper', __FILE__)
require 'mocha/central'
require 'mocha/mock'
require 'method_definer'
class CentralTest < Test::Unit::TestCase
include Mocha
def test_should_start_with_empty_stubba_methods
stubba = Central.new
assert_equal [], stubba.stubba_methods
end
def test_should_stub_method_if_not_already_stubbed
method = build_mock
method.expects(:stub)
stubba = Central.new
stubba.stub(method)
assert method.__verified__?
end
def test_should_not_stub_method_if_already_stubbed
method = build_mock
method.stubs(:matches?).returns(true)
method.expects(:stub).times(0)
stubba = Central.new
stubba.stubba_methods = [method]
stubba.stub(method)
assert method.__verified__?
end
def test_should_record_method
method = build_mock
method.expects(:stub)
stubba = Central.new
stubba.stub(method)
assert_equal [method], stubba.stubba_methods
end
def test_should_unstub_specified_method
stubba = Central.new
method_1 = build_mock
method_1.stubs(:matches?).returns(false)
method_2 = build_mock
method_2.stubs(:matches?).returns(true)
method_2.expects(:unstub)
stubba.stubba_methods = [method_1, method_2]
stubba.unstub(method_2)
assert_equal [method_1], stubba.stubba_methods
assert method_2.__verified__?
end
def test_should_not_unstub_specified_method_if_not_already_stubbed
stubba = Central.new
method_1 = build_mock
method_1.stubs(:matches?).returns(false)
method_2 = build_mock
method_2.expects(:unstub).never
stubba.stubba_methods = [method_1]
stubba.unstub(method_2)
assert_equal [method_1], stubba.stubba_methods
assert method_2.__verified__?
end
def test_should_unstub_all_methods
stubba = Central.new
method_1 = build_mock
method_1.stubs(:matches?).returns(true)
method_1.expects(:unstub)
method_2 = build_mock
method_2.stubs(:matches?).returns(true)
method_2.expects(:unstub)
stubba.stubba_methods = [method_1, method_2]
stubba.unstub_all
assert_equal [], stubba.stubba_methods
assert method_1.__verified__?
assert method_2.__verified__?
end
private
def build_mock
Mock.new(nil)
end
end
|