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