spec/ripple/document_spec.rb in ripple-0.8.0.beta2 vs spec/ripple/document_spec.rb in ripple-0.8.0

- old
+ new

@@ -25,9 +25,39 @@ it "should not be embeddable" do Page.should_not be_embeddable end + describe "equivalence" do + before do + class Homepage < Page; end + class ErrorPage; include Ripple::Document; self.bucket_name = "pages"; end + @doc = Page.new + @doc2 = Page.new + @sub = Homepage.new + @error = ErrorPage.new + [@doc,@doc2,@sub,@error].each {|d| d.key = "root"; d.stub!(:new?).and_return(false) } + end + + it "should be equal if the same object" do + @doc.should == @doc + end + + it "should be equal if instance of same class and key" do + @doc.should == @doc2 + @doc.should == @sub + end + + it "should be equal if of the same bucket and key" do + @doc.should == @error + end + + it "should not be equal if new record" do + @doc2.stub!(:new?).and_return(true) + @doc.should_not == @doc2 + end + end + describe "ActiveModel compatibility" do include ActiveModel::Lint::Tests before :each do @model = Page.new