diff options
Diffstat (limited to 'spec/ruby/core/basicobject/not_equal_spec.rb')
| -rw-r--r-- | spec/ruby/core/basicobject/not_equal_spec.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/spec/ruby/core/basicobject/not_equal_spec.rb b/spec/ruby/core/basicobject/not_equal_spec.rb new file mode 100644 index 0000000000..29b14b0fff --- /dev/null +++ b/spec/ruby/core/basicobject/not_equal_spec.rb @@ -0,0 +1,53 @@ +require_relative '../../spec_helper' + +describe "BasicObject#!=" do + it "is a public instance method" do + BasicObject.public_instance_methods(false).should.include?(:'!=') + end + + it "returns true if other is not identical to self" do + a = BasicObject.new + b = BasicObject.new + (a != b).should == true + end + + it "returns true if other is an Object" do + a = BasicObject.new + b = Object.new + (a != b).should == true + end + + it "returns false if other is identical to self" do + a = BasicObject.new + (a != a).should == false + end + + it "dispatches to #==" do + a = mock("not_equal") + b = BasicObject.new + a.should_receive(:==).and_return(true) + + (a != b).should == false + end + + describe "when invoked using Kernel#send" do + it "returns true if other is not identical to self" do + a = Object.new + b = Object.new + a.send(:!=, b).should == true + end + + it "returns false if other is identical to self" do + a = Object.new + a.send(:!=, a).should == false + end + + it "dispatches to #==" do + a = mock("not_equal") + b = Object.new + a.should_receive(:==).and_return(true) + + a.send(:!=, b).should == false + end + end +end |
