refactor balance tests

This commit is contained in:
Simon Michael 2008-11-22 06:09:44 +00:00
parent f831064644
commit 9d47496d37

203
Tests.hs
View File

@ -26,13 +26,12 @@ runtests args = do
------------------------------------------------------------------------------
-- tests
tests =
[TestList []
,misc_tests
,balancereportacctnames_tests
,balancecommand_tests
,registercommand_tests
]
tests = [TestList []
,misc_tests
,balancereportacctnames_tests
,balancecommand_tests
,registercommand_tests
]
misc_tests = TestList [
"show dollars" ~: show (dollars 1) ~?= "$1.00"
@ -120,127 +119,103 @@ balancereportacctnames_tests = TestList
assertequal e (balancereportacctnames l (opt=="-s") pats t)
balancecommand_tests = TestList [
"simple balance report" ~: do
l <- ledgerfromfile [] "sample.ledger"
assertequal (
" $-1 assets\n" ++
" $2 expenses\n" ++
" $-2 income\n" ++
" $1 liabilities\n" ++
"")
(showBalanceReport [] [] l)
"simple balance report" ~:
([], []) `gives`
(" $-1 assets\n" ++
" $2 expenses\n" ++
" $-2 income\n" ++
" $1 liabilities\n" ++
"")
,
"balance report with --subtotal" ~: do
l <- ledgerfromfile [] "sample.ledger"
assertequal (
" $-1 assets\n" ++
" $-2 cash\n" ++
" $1 saving\n" ++
" $2 expenses\n" ++
" $1 food\n" ++
" $1 supplies\n" ++
" $-2 income\n" ++
" $-1 gifts\n" ++
" $-1 salary\n" ++
" $1 liabilities:debts\n" ++
"")
(showBalanceReport [SubTotal] [] l)
"balance report with --subtotal" ~:
([SubTotal], []) `gives`
(" $-1 assets\n" ++
" $-2 cash\n" ++
" $1 saving\n" ++
" $2 expenses\n" ++
" $1 food\n" ++
" $1 supplies\n" ++
" $-2 income\n" ++
" $-1 gifts\n" ++
" $-1 salary\n" ++
" $1 liabilities:debts\n" ++
"")
,
"balance report with account pattern o" ~: do
l <- ledgerfromfile ["o"] "sample.ledger"
assertequal (
" $1 expenses:food\n" ++
" $-2 income\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
(showBalanceReport [] ["o"] l)
"balance report with account pattern o" ~:
([], ["o"]) `gives`
(" $1 expenses:food\n" ++
" $-2 income\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
,
"balance report with account pattern o and --subtotal" ~: do
l <- ledgerfromfile ["o"] "sample.ledger"
assertequal (
" $1 expenses:food\n" ++
" $-2 income\n" ++
" $-1 gifts\n" ++
" $-1 salary\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
(showBalanceReport [SubTotal] ["o"] l)
"balance report with account pattern o and --subtotal" ~:
([SubTotal], ["o"]) `gives`
(" $1 expenses:food\n" ++
" $-2 income\n" ++
" $-1 gifts\n" ++
" $-1 salary\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
,
"balance report with account pattern a" ~: do
l <- ledgerfromfile ["a"] "sample.ledger"
assertequal (
" $-1 assets\n" ++
" $-2 cash\n" ++
" $1 saving\n" ++
" $-1 income:salary\n" ++
" $1 liabilities\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
(showBalanceReport [] ["a"] l)
"balance report with account pattern a" ~:
([], ["a"]) `gives`
(" $-1 assets\n" ++
" $-2 cash\n" ++
" $1 saving\n" ++
" $-1 income:salary\n" ++
" $1 liabilities\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
,
"balance report with account pattern e" ~: do
l <- ledgerfromfile ["e"] "sample.ledger"
assertequal (
" $-1 assets\n" ++
" $2 expenses\n" ++
" $1 supplies\n" ++
" $-2 income\n" ++
" $1 liabilities:debts\n" ++
"")
(showBalanceReport [] ["e"] l)
"balance report with account pattern e" ~:
([], ["e"]) `gives`
(" $-1 assets\n" ++
" $2 expenses\n" ++
" $1 supplies\n" ++
" $-2 income\n" ++
" $1 liabilities:debts\n" ++
"")
,
"balance report with unmatched parent of two matched subaccounts" ~:
do
l <- ledgerfromfile ["cash","saving"] "sample.ledger"
assertequal (
" $-2 assets:cash\n" ++
" $1 assets:saving\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
(showBalanceReport [] ["cash","saving"] l)
([], ["cash","saving"]) `gives`
(" $-2 assets:cash\n" ++
" $1 assets:saving\n" ++
"--------------------\n" ++
" $-1\n" ++
"")
,
"balance report with multi-part account name" ~:
do
let pats = ["expenses:food"]
l <- ledgerfromfile pats "sample.ledger"
assertequal (
" $1 expenses:food\n" ++
"--------------------\n" ++
" $1\n" ++
"")
$ showBalanceReport [] pats l
([], ["expenses:food"]) `gives`
(" $1 expenses:food\n" ++
"--------------------\n" ++
" $1\n" ++
"")
,
"balance report with negative account pattern" ~: do
l <- ledgerfromfile ["-assets"] "sample.ledger"
assertequal (
" $2 expenses\n" ++
" $-2 income\n" ++
" $1 liabilities\n" ++
"--------------------\n" ++
" $1\n" ++
"")
(showBalanceReport [] ["-assets"] l)
"balance report with negative account pattern" ~:
([], ["-assets"]) `gives`
(" $2 expenses\n" ++
" $-2 income\n" ++
" $1 liabilities\n" ++
"--------------------\n" ++
" $1\n" ++
"")
,
"balance report negative account pattern always matches full name" ~:
do
l <- ledgerfromfile ["-e"] "sample.ledger"
assertequal "" $ showBalanceReport [] ["-e"] l
([], ["-e"]) `gives` ""
,
"balance report negative patterns affect totals" ~:
do
let pats = ["expenses","-food"]
l <- ledgerfromfile pats "sample.ledger"
assertequal (
" $1 expenses\n" ++
"--------------------\n" ++
" $1\n" ++
"")
$ showBalanceReport [] pats l
]
([], ["expenses","-food"]) `gives`
(" $1 expenses\n" ++
"--------------------\n" ++
" $1\n" ++
"")
] where
gives (opts,pats) e = do
l <- ledgerfromfile pats "sample.ledger"
assertequal e (showBalanceReport opts pats l)
registercommand_tests = TestList [
"register report" ~: