refactor
This commit is contained in:
		
							parent
							
								
									993972549a
								
							
						
					
					
						commit
						eedf0b211a
					
				
							
								
								
									
										72
									
								
								Tests.hs
									
									
									
									
									
								
							
							
						
						
									
										72
									
								
								Tests.hs
									
									
									
									
									
								
							| @ -656,78 +656,6 @@ tests = TestList [ | |||||||
|   ,"showMixedAmount" ~: do |   ,"showMixedAmount" ~: do | ||||||
|      showMixedAmount (Mixed []) ~?= "0" |      showMixedAmount (Mixed []) ~?= "0" | ||||||
| 
 | 
 | ||||||
|   ,"showTransaction" ~: do |  | ||||||
|      assertEqual "show a balanced transaction, eliding last amount" |  | ||||||
|        (unlines |  | ||||||
|         ["2007/01/28 coopportunity" |  | ||||||
|         ,"    expenses:food:groceries        $47.18" |  | ||||||
|         ,"    assets:checking" |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (let t = Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" |  | ||||||
|                 [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting (Just t) |  | ||||||
|                 ,Posting False "assets:checking" (Mixed [dollars (-47.18)]) "" RegularPosting (Just t) |  | ||||||
|                 ] "" |  | ||||||
|         in showTransaction t) |  | ||||||
|      assertEqual "show a balanced transaction, no eliding" |  | ||||||
|        (unlines |  | ||||||
|         ["2007/01/28 coopportunity" |  | ||||||
|         ,"    expenses:food:groceries        $47.18" |  | ||||||
|         ,"    assets:checking               $-47.18" |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (let t = Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" |  | ||||||
|                 [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting (Just t) |  | ||||||
|                 ,Posting False "assets:checking" (Mixed [dollars (-47.18)]) "" RegularPosting (Just t) |  | ||||||
|                 ] "" |  | ||||||
|         in showTransactionUnelided t) |  | ||||||
|      -- document some cases that arise in debug/testing: |  | ||||||
|      assertEqual "show an unbalanced transaction, should not elide" |  | ||||||
|        (unlines |  | ||||||
|         ["2007/01/28 coopportunity" |  | ||||||
|         ,"    expenses:food:groceries        $47.18" |  | ||||||
|         ,"    assets:checking               $-47.19" |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (showTransaction |  | ||||||
|         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" |  | ||||||
|          [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting Nothing |  | ||||||
|          ,Posting False "assets:checking" (Mixed [dollars (-47.19)]) "" RegularPosting Nothing |  | ||||||
|          ] "")) |  | ||||||
|      assertEqual "show an unbalanced transaction with one posting, should not elide" |  | ||||||
|        (unlines |  | ||||||
|         ["2007/01/28 coopportunity" |  | ||||||
|         ,"    expenses:food:groceries        $47.18" |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (showTransaction |  | ||||||
|         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" |  | ||||||
|          [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting Nothing |  | ||||||
|          ] "")) |  | ||||||
|      assertEqual "show a transaction with one posting and a missing amount" |  | ||||||
|        (unlines |  | ||||||
|         ["2007/01/28 coopportunity" |  | ||||||
|         ,"    expenses:food:groceries              " |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (showTransaction |  | ||||||
|         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" |  | ||||||
|          [Posting False "expenses:food:groceries" missingamt "" RegularPosting Nothing |  | ||||||
|          ] "")) |  | ||||||
| 
 |  | ||||||
|      assertEqual "show a transaction with a priced commodityless amount" |  | ||||||
|        (unlines |  | ||||||
|         ["2010/01/01 x" |  | ||||||
|         ,"    a        1 @ $2" |  | ||||||
|         ,"    b              " |  | ||||||
|         ,"" |  | ||||||
|         ]) |  | ||||||
|        (showTransaction |  | ||||||
|         (txnTieKnot $ Transaction (parsedate "2010/01/01") Nothing False "" "x" "" |  | ||||||
|          [Posting False "a" (Mixed [Amount unknown 1 (Just $ Mixed [Amount dollar{precision=0} 2 Nothing])]) "" RegularPosting Nothing |  | ||||||
|          ,Posting False "b" missingamt "" RegularPosting Nothing |  | ||||||
|          ] "")) |  | ||||||
| 
 |  | ||||||
|   ,"someamount" ~: do |   ,"someamount" ~: do | ||||||
|      let -- | compare a parse result with a MixedAmount, showing the debug representation for clarity |      let -- | compare a parse result with a MixedAmount, showing the debug representation for clarity | ||||||
|          assertMixedAmountParse parseresult mixedamount = |          assertMixedAmountParse parseresult mixedamount = | ||||||
|  | |||||||
| @ -47,7 +47,7 @@ tests_Ledger = TestList | |||||||
|     -- ,Ledger.Commodity.tests_Commodity |     -- ,Ledger.Commodity.tests_Commodity | ||||||
|      Ledger.Dates.tests_Dates |      Ledger.Dates.tests_Dates | ||||||
|     -- ,Ledger.IO.tests_IO |     -- ,Ledger.IO.tests_IO | ||||||
|     -- ,Ledger.Transaction.tests_Transaction |     ,Ledger.Transaction.tests_Transaction | ||||||
|     -- ,Ledger.Ledger.tests_Ledger |     -- ,Ledger.Ledger.tests_Ledger | ||||||
|     -- ,Ledger.Parse.tests_Parse |     -- ,Ledger.Parse.tests_Parse | ||||||
|     -- ,Ledger.Journal.tests_Journal |     -- ,Ledger.Journal.tests_Journal | ||||||
|  | |||||||
| @ -12,6 +12,7 @@ import Ledger.Types | |||||||
| import Ledger.Dates | import Ledger.Dates | ||||||
| import Ledger.Posting | import Ledger.Posting | ||||||
| import Ledger.Amount | import Ledger.Amount | ||||||
|  | import Ledger.Commodity (dollars, dollar, unknown) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| instance Show Transaction where show = showTransactionUnelided | instance Show Transaction where show = showTransactionUnelided | ||||||
| @ -140,3 +141,86 @@ txnTieKnot t@Transaction{tpostings=ps} = t{tpostings=map (settxn t) ps} | |||||||
| settxn :: Transaction -> Posting -> Posting | settxn :: Transaction -> Posting -> Posting | ||||||
| settxn t p = p{ptransaction=Just t} | settxn t p = p{ptransaction=Just t} | ||||||
| 
 | 
 | ||||||
|  | tests_Transaction = TestList [ | ||||||
|  |   "showTransaction" ~: do | ||||||
|  |      assertEqual "show a balanced transaction, eliding last amount" | ||||||
|  |        (unlines | ||||||
|  |         ["2007/01/28 coopportunity" | ||||||
|  |         ,"    expenses:food:groceries        $47.18" | ||||||
|  |         ,"    assets:checking" | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (let t = Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" | ||||||
|  |                 [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting (Just t) | ||||||
|  |                 ,Posting False "assets:checking" (Mixed [dollars (-47.18)]) "" RegularPosting (Just t) | ||||||
|  |                 ] "" | ||||||
|  |         in showTransaction t) | ||||||
|  | 
 | ||||||
|  |   ,"showTransaction" ~: do | ||||||
|  |      assertEqual "show a balanced transaction, no eliding" | ||||||
|  |        (unlines | ||||||
|  |         ["2007/01/28 coopportunity" | ||||||
|  |         ,"    expenses:food:groceries        $47.18" | ||||||
|  |         ,"    assets:checking               $-47.18" | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (let t = Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" | ||||||
|  |                 [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting (Just t) | ||||||
|  |                 ,Posting False "assets:checking" (Mixed [dollars (-47.18)]) "" RegularPosting (Just t) | ||||||
|  |                 ] "" | ||||||
|  |         in showTransactionUnelided t) | ||||||
|  | 
 | ||||||
|  |      -- document some cases that arise in debug/testing: | ||||||
|  |   ,"showTransaction" ~: do | ||||||
|  |      assertEqual "show an unbalanced transaction, should not elide" | ||||||
|  |        (unlines | ||||||
|  |         ["2007/01/28 coopportunity" | ||||||
|  |         ,"    expenses:food:groceries        $47.18" | ||||||
|  |         ,"    assets:checking               $-47.19" | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (showTransaction | ||||||
|  |         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" | ||||||
|  |          [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting Nothing | ||||||
|  |          ,Posting False "assets:checking" (Mixed [dollars (-47.19)]) "" RegularPosting Nothing | ||||||
|  |          ] "")) | ||||||
|  | 
 | ||||||
|  |   ,"showTransaction" ~: do | ||||||
|  |      assertEqual "show an unbalanced transaction with one posting, should not elide" | ||||||
|  |        (unlines | ||||||
|  |         ["2007/01/28 coopportunity" | ||||||
|  |         ,"    expenses:food:groceries        $47.18" | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (showTransaction | ||||||
|  |         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" | ||||||
|  |          [Posting False "expenses:food:groceries" (Mixed [dollars 47.18]) "" RegularPosting Nothing | ||||||
|  |          ] "")) | ||||||
|  | 
 | ||||||
|  |   ,"showTransaction" ~: do | ||||||
|  |      assertEqual "show a transaction with one posting and a missing amount" | ||||||
|  |        (unlines | ||||||
|  |         ["2007/01/28 coopportunity" | ||||||
|  |         ,"    expenses:food:groceries              " | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (showTransaction | ||||||
|  |         (txnTieKnot $ Transaction (parsedate "2007/01/28") Nothing False "" "coopportunity" "" | ||||||
|  |          [Posting False "expenses:food:groceries" missingamt "" RegularPosting Nothing | ||||||
|  |          ] "")) | ||||||
|  | 
 | ||||||
|  |   ,"showTransaction" ~: do | ||||||
|  |      assertEqual "show a transaction with a priced commodityless amount" | ||||||
|  |        (unlines | ||||||
|  |         ["2010/01/01 x" | ||||||
|  |         ,"    a        1 @ $2" | ||||||
|  |         ,"    b              " | ||||||
|  |         ,"" | ||||||
|  |         ]) | ||||||
|  |        (showTransaction | ||||||
|  |         (txnTieKnot $ Transaction (parsedate "2010/01/01") Nothing False "" "x" "" | ||||||
|  |          [Posting False "a" (Mixed [Amount unknown 1 (Just $ Mixed [Amount dollar{precision=0} 2 Nothing])]) "" RegularPosting Nothing | ||||||
|  |          ,Posting False "b" missingamt "" RegularPosting Nothing | ||||||
|  |          ] "")) | ||||||
|  | 
 | ||||||
|  |   ] | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user