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
|
# frozen_string_literal: true
require File.expand_path('../../test_helper', __FILE__)
require 'mocha/object_receiver'
class ObjectReceiverTest < Mocha::TestCase
include Mocha
class FakeObject
def initialize(mocha)
@mocha = mocha
end
def mocha(_instantiate)
@mocha
end
def is_a?(_klass)
false
end
end
class FakeClass
attr_reader :superclass
def initialize(superclass, mocha)
@superclass = superclass
@mocha = mocha
end
def mocha(_instantiate)
@mocha
end
def is_a?(klass)
klass == Class
end
end
def test_mocks_returns_mock_for_object
object = FakeObject.new(:mocha)
receiver = ObjectReceiver.new(object)
assert_equal [:mocha], receiver.mocks
end
def test_mocks_returns_mocks_for_class_and_its_superclasses
grandparent = FakeClass.new(nil, :grandparent_mocha)
parent = FakeClass.new(grandparent, :parent_mocha)
klass = FakeClass.new(parent, :mocha)
receiver = ObjectReceiver.new(klass)
assert_equal [:mocha, :parent_mocha, :grandparent_mocha], receiver.mocks
end
end
|