Sha256: 9035a223815d31ad59ffb029d428220fe6e673927e88204024f1523827e8af9c

Contents?: true

Size: 970 Bytes

Versions: 9

Compression:

Stored size: 970 Bytes

Contents

require 'spec_helper'

class Dude
  include CouchPotato::Persistence
  property :name
end

class NoneDude
  include CouchPotato::Persistence
  property :name
end

describe "persistence" do
  context '#eql?' do
    it "should use the class and id for equality" do
      dude22 = Dude.new(:id => "22", :name => "foo")
      dude11 = Dude.new(:id => "11", :name => "bar")

      none_dude22 = NoneDude.new(:id => "22", :name => "foo")

      dude22.should eql(dude22)
      dude22.should_not eql(none_dude22)
      dude22.should_not eql(dude11)
    end

    it "should handle new objects without id to be never equal" do
      dude = Dude.new(:name => "foo")
      dude22 = Dude.new(:id => "22", :name => "foo")

      dude.should_not eql(Dude.new(:name => "foo"))
      dude22.should_not eql(Dude.new(:name => "foo"))
    end

    it "should handle same object references to be equal" do
      dude = Dude.new(:name => "foo")

      dude.should eql(dude)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
couch_potato-1.4.0 spec/unit/persistence_spec.rb
couch_potato-1.3.0 spec/unit/persistence_spec.rb
couch_potato-1.2.0 spec/unit/persistence_spec.rb
couch_potato-1.1.4 spec/unit/persistence_spec.rb
couch_potato-1.1.2 spec/unit/persistence_spec.rb
couch_potato-1.1.1 spec/unit/persistence_spec.rb
couch_potato-1.1.0 spec/unit/persistence_spec.rb
couch_potato-1.0.1 spec/unit/persistence_spec.rb
couch_potato-1.0.0 spec/unit/persistence_spec.rb