43 lines
1.2 KiB
Ruby
43 lines
1.2 KiB
Ruby
require File.dirname(__FILE__) + '/../spec_helper'
|
|
|
|
describe Deliverable, '#overhead_spent' do
|
|
before(:each) do
|
|
@deliverable = Deliverable.new
|
|
end
|
|
|
|
it 'should equal the product of overhead timelogs by their cost' do
|
|
issue1 = mock_model(Issue)
|
|
issue1.stub!(:time_entries).and_return do
|
|
[
|
|
mock_model(TimeEntry, :cost => 100.0, :billable? => true),
|
|
mock_model(TimeEntry, :cost => 200.0, :billable? => false)
|
|
]
|
|
end
|
|
issue2 = mock_model(Issue)
|
|
issue2.stub!(:time_entries).and_return do
|
|
[
|
|
mock_model(TimeEntry, :cost => 10.0, :billable? => false),
|
|
mock_model(TimeEntry, :cost => 40.0, :billable? => false)
|
|
]
|
|
end
|
|
|
|
issues = [issue1, issue2]
|
|
|
|
@deliverable.stub!(:issues).and_return(issues)
|
|
@deliverable.overhead_spent.should eql(250.0)
|
|
end
|
|
|
|
it 'should be 0.0 if there are no issues assigned' do
|
|
@deliverable.stub!(:issues).and_return([])
|
|
@deliverable.overhead_spent.should eql(0)
|
|
end
|
|
|
|
it 'should be 0.0 if there are no time entries' do
|
|
issue1 = mock_model(Issue, :time_entries => [])
|
|
issue2 = mock_model(Issue, :time_entries => [])
|
|
|
|
@deliverable.stub!(:issues).and_return([issue1, issue2])
|
|
@deliverable.overhead_spent.should eql(0)
|
|
end
|
|
end
|