This commit is contained in:
Captain Future
2011-04-17 16:26:36 +02:00
commit e6134722d4
39 changed files with 1199 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
require File.dirname(__FILE__) + '/../spec_helper'
describe Order do
context 'validation' do
it { should have_valid_factory(:order) }
end
context "#add_variant" do
it "should add digital Variants of quantity 1 to an order" do
order = Factory(:order)
order.add_variant variant1 = Factory(:variant, :digital => Factory(:digital))
order.add_variant variant2 = Factory(:variant, :digital => Factory(:digital))
order.add_variant variant3 = Factory(:variant, :digital => Factory(:digital))
order.line_items.first.variant.should == variant1
order.line_items.second.variant.should == variant2
order.line_items.third.variant.should == variant3
end
it "should handle quantity higher than 1 when adding one specific digital Variant" do
order = Factory(:order)
digital_variant = Factory(:variant, :digital => Factory(:digital))
order.add_variant digital_variant, 3
order.line_items.first.quantity.should == 3
order.add_variant digital_variant, 2
order.line_items.first.quantity.should == 5
end
end
context "line_item analysis" do
it "should understand that all products are digital" do
order = Factory(:order)
3.times do
order.add_variant Factory(:variant, :digital => Factory(:digital))
end
order.digital?.should be_true
order.add_variant Factory(:variant, :digital => Factory(:digital)), 4
order.digital?.should be_true
end
it "should understand that not all products are digital" do
order = Factory(:order)
3.times do
order.add_variant Factory(:variant, :digital => Factory(:digital))
end
order.add_variant Factory(:variant) # this is the analog product
order.digital?.should be_false
order.add_variant Factory(:variant, :digital => Factory(:digital)), 4
order.digital?.should be_false
end
end
end