tested order count

This commit is contained in:
Marin Usalj
2012-11-26 17:32:30 -08:00
parent 092752b603
commit 881c8e6a65
2 changed files with 33 additions and 2 deletions

View File

@@ -11,7 +11,7 @@ class Order < ActiveRecord::Base
@order.name = options[:name]
@order.user_id = options[:user_id]
@order.price = options[:price]
@order.number = Order.next_order_number || 1
@order.number = Order.next_order_number
@order.save!
@order
@@ -38,7 +38,11 @@ class Order < ActiveRecord::Base
end
def self.next_order_number
Order.order("number DESC").limit(1).first.number.to_i + 1 if Order.count > 0
if Order.count > 0
Order.order("number DESC").limit(1).first.number.to_i + 1
else
1
end
end
def generate_uuid!

View File

@@ -131,6 +131,33 @@ describe Order do
end
describe ".next_order_number" do
it "gives the next number" do
ActiveRecord::Relation.any_instance.stub(:first).and_return(stub( number: 1 ))
Order.next_order_number.should == 2
end
context "no orders" do
before do
ActiveRecord::Relation.any_instance.stub(:first).and_return(nil)
Order.stub!(:count).and_return(0)
end
it "doesn't break if there's no orders" do
expect { Order.next_order_number }.to_not raise_error
end
it "returns 1 if there's no orders" do
Order.next_order_number.should == 1
end
end
end
end