File: base_class_identifier_spec.rb

package info (click to toggle)
ruby-bogus 0.1.5-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 828 kB
  • ctags: 628
  • sloc: ruby: 4,124; makefile: 6; sh: 2
file content (67 lines) | stat: -rw-r--r-- 1,325 bytes parent folder | download | duplicates (3)
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