[#4410] Replace Payment Terms with an Enumeration

Instead of using a hard coded value for Payment Terms, they will use
Redmine's Enumeration table.  This provides an admin gui to managing
the value as well as ordering them.
This commit is contained in:
Eric Davis
2010-08-12 09:26:09 -07:00
parent c17e8eaf1b
commit a2b810a4d8
18 changed files with 110 additions and 31 deletions
+1
View File
@@ -3,6 +3,7 @@ require File.dirname(__FILE__) + '/../test_helper'
class ContractTest < ActiveSupport::TestCase
should_belong_to :account_executive
should_belong_to :project
should_belong_to :payment_term
should_have_many :deliverables
should_validate_presence_of :name
+40
View File
@@ -0,0 +1,40 @@
require File.dirname(__FILE__) + '/../test_helper'
class PaymentTermTest < ActiveSupport::TestCase
include Redmine::I18n
should_have_many(:contracts)
should "be a subclass of Enumeration" do
assert_equal Enumeration, PaymentTerm.superclass
end
context "#option_name" do
should "be Payment Terms" do
assert_equal "Payment Terms", l(PaymentTerm.new.option_name)
end
end
context "#objects_count" do
should "count the number of contracts with this payment term" do
@payment_term = PaymentTerm.generate!(:type => 'PaymentTerm')
Contract.generate!(:payment_term => @payment_term)
Contract.generate!(:payment_term => @payment_term)
assert_equal 2, @payment_term.objects_count
end
end
context "#transfer_relations" do
should "update all contracts to use a new PaymentTerm" do
@old_payment_term = PaymentTerm.generate!(:type => 'PaymentTerm')
@new_payment_term = PaymentTerm.generate!(:type => 'PaymentTerm')
@contract1 = Contract.generate!(:payment_term => @old_payment_term)
@contract2 = Contract.generate!(:payment_term => @old_payment_term)
@old_payment_term.transfer_relations(@new_payment_term)
assert_equal @new_payment_term, @contract1.reload.payment_term
assert_equal @new_payment_term, @contract2.reload.payment_term
end
end
end