test/functional/associations/test_many_proxy.rb in jnunemaker-mongomapper-0.3.2 vs test/functional/associations/test_many_proxy.rb in jnunemaker-mongomapper-0.3.3

- old
+ new

@@ -96,10 +96,69 @@ project.statuses.count(:name => 'Foo').should == 1 end end + context "Unassociating documents" do + setup do + @project = Project.create + @project.statuses << Status.create(:name => '1') + @project.statuses << Status.create(:name => '2') + + @project2 = Project.create + @project2.statuses << Status.create(:name => '1') + @project2.statuses << Status.create(:name => '2') + end + + should "work with destroy all" do + @project.statuses.count.should == 2 + @project.statuses.destroy_all + @project.statuses.count.should == 0 + + @project2.statuses.count.should == 2 + Status.count.should == 2 + end + + should "work with destroy all and conditions" do + @project.statuses.count.should == 2 + @project.statuses.destroy_all(:name => '1') + @project.statuses.count.should == 1 + + @project2.statuses.count.should == 2 + Status.count.should == 3 + end + + should "work with delete all" do + @project.statuses.count.should == 2 + @project.statuses.delete_all + @project.statuses.count.should == 0 + + @project2.statuses.count.should == 2 + Status.count.should == 2 + end + + should "work with delete all and conditions" do + @project.statuses.count.should == 2 + @project.statuses.delete_all(:name => '1') + @project.statuses.count.should == 1 + + @project2.statuses.count.should == 2 + Status.count.should == 3 + end + + should "work with nullify" do + @project.statuses.count.should == 2 + @project.statuses.nullify + @project.statuses.count.should == 0 + + @project2.statuses.count.should == 2 + Status.count.should == 4 + Status.count(:name => '1').should == 2 + Status.count(:name => '2').should == 2 + end + end + context "Finding scoped to association" do setup do @project1 = Project.new(:name => 'Project 1') @brand_new = Status.create(:name => 'New') @complete = Status.create(:name => 'Complete') @@ -146,22 +205,22 @@ end end context "with :first" do should "work" do - @project1.statuses.find(:first).should == @brand_new + @project1.statuses.find(:first, :order => 'name').should == @complete end should "work with conditions" do status = @project1.statuses.find(:first, :conditions => {:name => 'Complete'}) status.should == @complete end end context "with #first" do should "work" do - @project1.statuses.first.should == @brand_new + @project1.statuses.first(:order => 'name').should == @complete end should "work with conditions" do status = @project1.statuses.first(:conditions => {:name => 'Complete'}) status.should == @complete @@ -215,11 +274,11 @@ end end context "with #paginate" do setup do - @statuses = @project2.statuses.paginate(:per_page => 2, :page => 1, :order => '$natural asc') + @statuses = @project2.statuses.paginate(:per_page => 2, :page => 1, :order => 'name asc') end should "return total pages" do @statuses.total_pages.should == 2 end @@ -227,10 +286,10 @@ should "return total entries" do @statuses.total_entries.should == 3 end should "return the subject" do - @statuses.should == [@in_progress, @archived] + @statuses.collect(&:name).should == %w(Archived Complete) end end end end \ No newline at end of file