ruby_version_is "1.9" do
  describe "Kernel#singleton_class" do
    it "returns class extended from an object" do
      x = Object.new
      xs = class << x; self; end
      xs.should == x.singleton_class
    end

    it "returns NilClass for nil" do
      nil.singleton_class.should == NilClass
    end

    it "returns TrueClass for true" do
      true.singleton_class.should == TrueClass
    end

    it "returns FalseClass for false" do
      false.singleton_class.should == FalseClass
    end

    it "raises TypeError for Fixnum" do
      lambda { 123.singleton_class }.should raise_error(TypeError)
    end

    it "raises TypeError for Symbol" do
      lambda { :foo.singleton_class }.should raise_error(TypeError)
    end

  end
end
