Add some model tests #9
2 changed files with 26 additions and 33 deletions
30
test/fixtures/expenses.yml
vendored
30
test/fixtures/expenses.yml
vendored
|
@ -1,15 +1,29 @@
|
||||||
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||||
|
|
||||||
one:
|
monthly_expense:
|
||||||
description: MyString
|
description: Monthly Expense
|
||||||
payment: 9.99
|
payment: 120.00
|
||||||
period: 1
|
period: monthly
|
||||||
|
credit_card: true
|
||||||
|
estimated: false
|
||||||
|
|
||||||
|
annual_expense:
|
||||||
|
description: Annual Expense
|
||||||
|
payment: 120.00
|
||||||
|
period: annually
|
||||||
|
credit_card: true
|
||||||
|
estimated: false
|
||||||
|
|
||||||
|
weekly_expense:
|
||||||
|
description: Weekly Expense
|
||||||
|
payment: 120.00
|
||||||
|
period: weekly
|
||||||
credit_card: false
|
credit_card: false
|
||||||
estimated: false
|
estimated: false
|
||||||
|
|
||||||
two:
|
quarterly_expense:
|
||||||
description: MyString
|
description: Quarterly Expense
|
||||||
payment: 9.99
|
payment: 120.00
|
||||||
period: 1
|
period: quarterly
|
||||||
credit_card: false
|
credit_card: false
|
||||||
estimated: false
|
estimated: false
|
||||||
|
|
|
@ -2,59 +2,38 @@ require "test_helper"
|
||||||
|
|
||||||
class ExpenseTest < ActiveSupport::TestCase
|
class ExpenseTest < ActiveSupport::TestCase
|
||||||
def test_monthly_converts_period_for_monthly
|
def test_monthly_converts_period_for_monthly
|
||||||
expense = Expense.new(period: :monthly, payment: 120.00)
|
expense = expenses(:monthly_expense)
|
||||||
|
|
||||||
assert_equal 120.00, expense.monthly
|
assert_equal 120.00, expense.monthly
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_monthly_converts_period_for_annually
|
def test_monthly_converts_period_for_annually
|
||||||
expense = Expense.new(period: :annually, payment: 120.00)
|
expense = expenses(:annual_expense)
|
||||||
|
|
||||||
assert_equal 10.00, expense.monthly
|
assert_equal 10.00, expense.monthly
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_monthly_converts_period_for_weekly
|
def test_monthly_converts_period_for_weekly
|
||||||
expense = Expense.new(period: :weekly, payment: 120.00)
|
expense = expenses(:weekly_expense)
|
||||||
|
|
||||||
assert_equal 520.00, expense.monthly
|
assert_equal 520.00, expense.monthly
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_monthly_converts_period_for_quarterly
|
def test_monthly_converts_period_for_quarterly
|
||||||
expense = Expense.new(period: :quarterly, payment: 120.00)
|
expense = expenses(:quarterly_expense)
|
||||||
|
|
||||||
assert_equal 40.00, expense.monthly
|
assert_equal 40.00, expense.monthly
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_total_calculates_total_of_expenses
|
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
|
assert_equal 480.00, Expense.total
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_total_calculates_monthly_total
|
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
|
assert_equal 690.00, Expense.monthly_total
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_total_calculates_credit_card_monthly_total
|
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
|
assert_equal 130.00, Expense.credit_card_monthly_total
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue