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
|
require 'spec_helper'
module SampleForBaseIdentifier
describe Bogus::BaseClassIdentifier do
module Foo
def foo; end
end
module Bar
include Foo
def bar; end
end
module Baz
def baz; end
end
module OtherModule
end
class SuperBase
end
class BaseClass < SuperBase
include Bar
def x; end
end
class SubClass < BaseClass
include Baz
def y; end
end
class OtherClass
end
class BarInstance
include Bar
end
def self.it_returns_the_same_value_as_a_regular_instance
klasses = [Foo, Bar, Baz, OtherModule,
SuperBase, BaseClass, SubClass, OtherClass]
klasses.each do |klass|
it "returns the same for is_a?(#{klass})" do
expected = instance.is_a?(klass)
actual = Bogus::BaseClassIdentifier.base_class?(copied_class, klass)
expect(actual).to eq expected
end
end
end
context "with copied module" do
let(:copied_class) { Bar }
let(:instance) { BarInstance.new }
it_returns_the_same_value_as_a_regular_instance
end
context "with copied class" do
let(:copied_class) { SubClass }
let(:instance) { SubClass.new }
it_returns_the_same_value_as_a_regular_instance
end
end
end
|