From c433de9ec72a76c80b7bf4897af1c88eab6f9f2e Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Wed, 28 May 2008 13:03:42 -0700 Subject: [PATCH] Added some defaults when there are no deliverables. --- app/models/budget.rb | 4 ++-- spec/models/budget_spec.rb | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/models/budget.rb b/app/models/budget.rb index a9a6edb..a951994 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -34,7 +34,7 @@ class Budget end def budget - return self.deliverables.collect(&:budget).inject { |sum, n| sum + n} + return self.deliverables.collect(&:budget).inject { |sum, n| sum + n} || 0.0 end def budget_ratio @@ -42,7 +42,7 @@ class Budget end def spent - self.deliverables.collect(&:spent).inject { |sum, n| sum + n } + self.deliverables.collect(&:spent).inject { |sum, n| sum + n } || 0.0 end def left diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index 12d89ee..2e8add8 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -200,6 +200,17 @@ describe Budget,'.budget' do @budget = Budget.new(@project.id) @budget.budget.should eql(5000.0) end + + it 'should be 0 if there are no deliverables' do + Deliverable.stub!(:find_all_by_project_id).and_return([]) + + @project = mock_model(Project) + Project.stub!(:find).with(@project.id).and_return(@project) + + @budget = Budget.new(@project.id) + + @budget.budget.should eql(0.0) + end end describe Budget,'.budget_ratio' do @@ -277,4 +288,15 @@ describe Budget, '.spent' do @budget.spent.should eql(1500.0) end + + it 'should be 0 if there are no deliverables' do + Deliverable.stub!(:find_all_by_project_id).and_return([]) + + @project = mock_model(Project) + Project.stub!(:find).with(@project.id).and_return(@project) + + @budget = Budget.new(@project.id) + + @budget.spent.should eql(0.0) + end end