[#2863] Override the deliverable rows from the budget plugin to show
labor budget spent. * Added FixedDeliverable#labor_budget_spent * Added HourlyDeliverable#labor_budget_spent * Added an _deliverable_summary_row.html.erb with the new method
This commit is contained in:
39
spec/lib/overhead_fixed_deliverable_patch_spec.rb
Normal file
39
spec/lib/overhead_fixed_deliverable_patch_spec.rb
Normal file
@@ -0,0 +1,39 @@
|
||||
require File.dirname(__FILE__) + '/../spec_helper'
|
||||
|
||||
describe FixedDeliverable, '#labor_budget_spent' do
|
||||
def mock_issues_and_time_entries
|
||||
@deliverable.should_receive(:issues).at_least(:once).and_return do
|
||||
issue1 = mock_model(Issue, :time_entries => [
|
||||
mock_model(TimeEntry, :cost => 100, :billable? => true),
|
||||
mock_model(TimeEntry, :cost => 200, :billable? => false),
|
||||
mock_model(TimeEntry, :cost => 50, :billable? => true)
|
||||
])
|
||||
issue2 = mock_model(Issue, :time_entries => [
|
||||
mock_model(TimeEntry, :cost => 1000, :billable? => true),
|
||||
mock_model(TimeEntry, :cost => 2000, :billable? => false),
|
||||
mock_model(TimeEntry, :cost => 5000, :billable? => true)
|
||||
])
|
||||
[issue1, issue2]
|
||||
end
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
@deliverable = FixedDeliverable.new :fixed_cost => 0
|
||||
end
|
||||
|
||||
it 'should be 0 if there are no assigned issues' do
|
||||
@deliverable.should_receive(:issues).and_return([])
|
||||
@deliverable.labor_budget_spent.should eql(0)
|
||||
end
|
||||
|
||||
it 'should total all billable time entries' do
|
||||
mock_issues_and_time_entries
|
||||
@deliverable.labor_budget_spent.should eql(6150.0)
|
||||
end
|
||||
|
||||
it 'should total the billable time entries to the fixed_cost' do
|
||||
mock_issues_and_time_entries
|
||||
@deliverable.should_receive(:fixed_cost).at_least(:once).and_return(5000)
|
||||
@deliverable.labor_budget_spent.should eql(11_150.0)
|
||||
end
|
||||
end
|
||||
28
spec/lib/overhead_hourly_deliverable_patch_spec.rb
Normal file
28
spec/lib/overhead_hourly_deliverable_patch_spec.rb
Normal file
@@ -0,0 +1,28 @@
|
||||
require File.dirname(__FILE__) + '/../spec_helper'
|
||||
|
||||
describe HourlyDeliverable, '#labor_budget_spent' do
|
||||
it 'should be 0 if there are no assigned issues' do
|
||||
deliverable = HourlyDeliverable.new
|
||||
deliverable.should_receive(:issues).and_return([])
|
||||
deliverable.labor_budget_spent.should eql(0.0)
|
||||
end
|
||||
|
||||
it 'should total all billable time entries' do
|
||||
deliverable = HourlyDeliverable.new
|
||||
deliverable.should_receive(:issues).at_least(:once).and_return do
|
||||
issue1 = mock_model(Issue, :time_entries => [
|
||||
mock_model(TimeEntry, :cost => 100, :billable? => true),
|
||||
mock_model(TimeEntry, :cost => 200, :billable? => false),
|
||||
mock_model(TimeEntry, :cost => 50, :billable? => true)
|
||||
])
|
||||
issue2 = mock_model(Issue, :time_entries => [
|
||||
mock_model(TimeEntry, :cost => 1000, :billable? => true),
|
||||
mock_model(TimeEntry, :cost => 2000, :billable? => false),
|
||||
mock_model(TimeEntry, :cost => 5000, :billable? => true)
|
||||
])
|
||||
[issue1, issue2]
|
||||
end
|
||||
|
||||
deliverable.labor_budget_spent.should eql(6150.0)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user