Add model tests for Expense
This commit is contained in:
parent
dd881ee41c
commit
b460ae31cf
1 changed files with 56 additions and 3 deletions
|
@ -1,7 +1,60 @@
|
||||||
require "test_helper"
|
require "test_helper"
|
||||||
|
|
||||||
class ExpenseTest < ActiveSupport::TestCase
|
class ExpenseTest < ActiveSupport::TestCase
|
||||||
# test "the truth" do
|
def test_monthly_converts_period_for_monthly
|
||||||
# assert true
|
expense = Expense.new(period: :monthly, payment: 120.00)
|
||||||
# end
|
|
||||||
|
assert_equal 120.00, expense.monthly
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_monthly_converts_period_for_annually
|
||||||
|
expense = Expense.new(period: :annually, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 10.00, expense.monthly
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_monthly_converts_period_for_weekly
|
||||||
|
expense = Expense.new(period: :weekly, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 520.00, expense.monthly
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_monthly_converts_period_for_quarterly
|
||||||
|
expense = Expense.new(period: :quarterly, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 40.00, expense.monthly
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_total_calculates_total_of_expenses
|
||||||
|
Expense.destroy_all
|
||||||
|
|
||||||
|
Expense.create!(period: :monthly, payment: 120.00)
|
||||||
|
Expense.create!(period: :annually, payment: 120.00)
|
||||||
|
Expense.create!(period: :weekly, payment: 120.00)
|
||||||
|
Expense.create!(period: :quarterly, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 480.00, Expense.total
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_total_calculates_monthly_total
|
||||||
|
Expense.destroy_all
|
||||||
|
|
||||||
|
Expense.create!(period: :monthly, payment: 120.00)
|
||||||
|
Expense.create!(period: :annually, payment: 120.00)
|
||||||
|
Expense.create!(period: :weekly, payment: 120.00)
|
||||||
|
Expense.create!(period: :quarterly, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 690.00, Expense.monthly_total
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_total_calculates_credit_card_monthly_total
|
||||||
|
Expense.destroy_all
|
||||||
|
|
||||||
|
Expense.create!(period: :monthly, payment: 120.00, credit_card: true)
|
||||||
|
Expense.create!(period: :annually, payment: 120.00, credit_card: true)
|
||||||
|
Expense.create!(period: :weekly, payment: 120.00)
|
||||||
|
Expense.create!(period: :quarterly, payment: 120.00)
|
||||||
|
|
||||||
|
assert_equal 130.00, Expense.credit_card_monthly_total
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue