1require_relative '../../spec_helper' 2require_relative 'fixtures/classes' 3 4describe "Module#>=" do 5 it "returns true if self is a superclass of, the same as or included by given module" do 6 (ModuleSpecs::Parent >= ModuleSpecs::Child).should == true 7 (ModuleSpecs::Basic >= ModuleSpecs::Child).should == true 8 (ModuleSpecs::Super >= ModuleSpecs::Child).should == true 9 (ModuleSpecs::Basic >= ModuleSpecs::Super).should == true 10 (ModuleSpecs::Child >= ModuleSpecs::Child).should == true 11 (ModuleSpecs::Parent >= ModuleSpecs::Parent).should == true 12 (ModuleSpecs::Basic >= ModuleSpecs::Basic).should == true 13 (ModuleSpecs::Super >= ModuleSpecs::Super).should == true 14 end 15 16 it "returns nil if self is not related to the given module" do 17 (ModuleSpecs::Parent >= ModuleSpecs::Basic).should == nil 18 (ModuleSpecs::Parent >= ModuleSpecs::Super).should == nil 19 (ModuleSpecs::Basic >= ModuleSpecs::Parent).should == nil 20 (ModuleSpecs::Super >= ModuleSpecs::Parent).should == nil 21 end 22 23 it "returns false if self is a subclass of or includes the given module" do 24 (ModuleSpecs::Child >= ModuleSpecs::Parent).should == false 25 (ModuleSpecs::Child >= ModuleSpecs::Basic).should == false 26 (ModuleSpecs::Child >= ModuleSpecs::Super).should == false 27 (ModuleSpecs::Super >= ModuleSpecs::Basic).should == false 28 end 29 30 it "raises a TypeError if the argument is not a class/module" do 31 lambda { ModuleSpecs::Parent >= mock('x') }.should raise_error(TypeError) 32 end 33end 34