Files
redmine_contracts/test/integration/overhead_plugin_integration_test.rb
T

126 lines
5.3 KiB
Ruby

require 'test_helper'
class OverheadPluginIntegrationTest < ActionController::IntegrationTest
def setup
@project = Project.generate!(:identifier => 'main')
@contract = Contract.generate!(:project => @project, :name => 'A Contract', :payment_terms => 'net_15')
@manager = User.generate!
@role = Role.generate!
User.add_to_project(@manager, @project, @role)
@fixed_deliverable = FixedDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'The Title')
@hourly_deliverable = HourlyDeliverable.generate!(:contract => @contract, :manager => @manager, :title => 'An Hourly')
configure_overhead_plugin
end
context "Patches to Deliverable" do
context "#overhead_spent" do
should "return the total cost for all of the time on the issues for non-billable activities" do
@issue1 = Issue.generate_for_project!(@project)
@time_entry1 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @billable_activity,
:spent_on => Date.today,
:hours => 10,
:user => @manager)
@time_entry2 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @non_billable_activity,
:spent_on => Date.today,
:hours => 20,
:user => @manager)
@rate = Rate.generate!(:project => @project,
:user => @manager,
:date_in_effect => Date.yesterday,
:amount => 100)
@hourly_deliverable.issues << @issue1
assert_equal 1, @hourly_deliverable.issues.count
assert_equal 20 * 100, @hourly_deliverable.overhead_spent
end
end
end
context "Patches to HourlyDeliverable" do
context "#labor_budget_spent" do
should "return 0 if there are no issues assigned" do
assert_equal 0, @hourly_deliverable.issues.count
assert_equal 0, @hourly_deliverable.labor_budget_spent
end
should "return the total cost for all of the time on the issues for billable activities" do
@issue1 = Issue.generate_for_project!(@project)
@time_entry1 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @billable_activity,
:spent_on => Date.today,
:hours => 10,
:user => @manager)
@time_entry2 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @non_billable_activity,
:spent_on => Date.today,
:hours => 20,
:user => @manager)
@rate = Rate.generate!(:project => @project,
:user => @manager,
:date_in_effect => Date.yesterday,
:amount => 100)
@hourly_deliverable.issues << @issue1
assert_equal 1, @hourly_deliverable.issues.count
assert_equal 10 * 100, @hourly_deliverable.labor_budget_spent
end
end
end
context "Patches to FixedDeliverable" do
context "#labor_budget_spent" do
should "return 0 if there are no issues assigned" do
assert_equal 0, @fixed_deliverable.issues.count
assert_equal 0, @fixed_deliverable.labor_budget_spent
end
should "return the total cost for all of the time on the issues for billable activities" do
@issue1 = Issue.generate_for_project!(@project)
@time_entry1 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @billable_activity,
:spent_on => Date.today,
:hours => 10,
:user => @manager)
@time_entry2 = TimeEntry.generate!(:issue => @issue1,
:project => @project,
:activity => @non_billable_activity,
:spent_on => Date.today,
:hours => 20,
:user => @manager)
@rate = Rate.generate!(:project => @project,
:user => @manager,
:date_in_effect => Date.yesterday,
:amount => 100)
@fixed_deliverable.issues << @issue1
assert_equal 1, @fixed_deliverable.issues.count
assert_equal 10 * 100, @fixed_deliverable.labor_budget_spent
end
end
end
end