70 lines
1.7 KiB
Ruby
70 lines
1.7 KiB
Ruby
require File.dirname(__FILE__) + '/../test_helper'
|
|
|
|
class FixedBudgetTest < ActiveSupport::TestCase
|
|
should_belong_to :deliverable
|
|
|
|
context "#markup_value" do
|
|
setup do
|
|
@fixed_budget = FixedBudget.new(:budget => 1000)
|
|
end
|
|
|
|
context "with no markup" do
|
|
should "be 0" do
|
|
assert_equal nil, @fixed_budget.markup
|
|
assert_equal 0, @fixed_budget.markup_value
|
|
end
|
|
end
|
|
|
|
context "with a % markup" do
|
|
should "equal the budget times the %" do
|
|
@fixed_budget.markup = '50%'
|
|
assert_equal 500, @fixed_budget.markup_value
|
|
end
|
|
end
|
|
|
|
context "with a $ markup" do
|
|
should "equal the $ markup (straight markup)" do
|
|
@fixed_budget.markup = '$4,000.57'
|
|
assert_equal 4000.57, @fixed_budget.markup_value
|
|
end
|
|
|
|
should "work without the $ sign" do
|
|
@fixed_budget.markup = '4,000.57'
|
|
assert_equal 4000.57, @fixed_budget.markup_value
|
|
end
|
|
|
|
end
|
|
|
|
context "with a straight amount of markup" do
|
|
should "equal the markup" do
|
|
@fixed_budget.markup = 4000.57
|
|
assert_equal 4000.57, @fixed_budget.markup_value
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
context "#budget=" do
|
|
setup do
|
|
@fixed_budget = FixedBudget.new
|
|
end
|
|
|
|
should "allow a $ string" do
|
|
@fixed_budget.budget = '$1,000.00'
|
|
assert_equal 1000.00, @fixed_budget.budget
|
|
end
|
|
|
|
should "allow a plain string" do
|
|
@fixed_budget.budget = '1,000.00'
|
|
assert_equal 1000.00, @fixed_budget.budget
|
|
end
|
|
|
|
should "allow a numeric value" do
|
|
@fixed_budget.budget = 1000.00
|
|
assert_equal 1000.00, @fixed_budget.budget
|
|
end
|
|
|
|
end
|
|
|
|
end
|