Files
redmine_overhead/spec/lib/overhead_issue_patch_spec.rb

81 lines
2.4 KiB
Ruby

require File.dirname(__FILE__) + '/../spec_helper'
def mock_time_entry(hours, billable)
mock_model(TimeEntry, :hours => hours.to_f, :billable? => billable)
end
describe Issue, '#billable_time_spent' do
it 'should total the billable time entries' do
time_entries = [mock_time_entry(12, true),
mock_time_entry(13, true)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.billable_time_spent.should eql(25.0)
end
it 'should not include overhead time entries' do
time_entries = [mock_time_entry(12, true),
mock_time_entry(13, true),
mock_time_entry(20, false),
mock_time_entry(40, false)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.billable_time_spent.should eql(25.0)
end
it 'should not round' do
time_entries = [mock_time_entry(20, true),
mock_time_entry(13.333, true)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.billable_time_spent.should eql(33.333)
end
it 'should return 0 if there are no time entries' do
issue = Issue.new
issue.billable_time_spent.should eql(0)
end
end
describe Issue, '#overhead_time_spent' do
it 'should total the overhead time entries' do
time_entries = [mock_time_entry(12, false),
mock_time_entry(13, false)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.overhead_time_spent.should eql(25.0)
end
it 'should not include billable time entries' do
time_entries = [mock_time_entry(12, true),
mock_time_entry(13, true),
mock_time_entry(20, false),
mock_time_entry(40, false)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.overhead_time_spent.should eql(60.0)
end
it 'should not round' do
time_entries = [mock_time_entry(20, false),
mock_time_entry(13.333, false)]
issue = Issue.new
issue.should_receive(:time_entries).and_return(time_entries)
issue.overhead_time_spent.should eql(33.333)
end
it 'should return 0 if there are no time entries' do
issue = Issue.new
issue.overhead_time_spent.should eql(0)
end
end