tests: ReportOptions -> easytest
This commit is contained in:
		
							parent
							
								
									3b63c2ff2f
								
							
						
					
					
						commit
						241d0dbebd
					
				| @ -1,4 +1,4 @@ | ||||
| {-# LANGUAGE RecordWildCards, DeriveDataTypeable, FlexibleInstances #-} | ||||
| {-# LANGUAGE OverloadedStrings, RecordWildCards, DeriveDataTypeable, FlexibleInstances #-} | ||||
| {-| | ||||
| 
 | ||||
| Generate several common kinds of report from a journal, as \"*Report\" - | ||||
| @ -18,9 +18,9 @@ module Hledger.Reports ( | ||||
|   module Hledger.Reports.MultiBalanceReports, | ||||
|   module Hledger.Reports.BudgetReport, | ||||
| --   module Hledger.Reports.BalanceHistoryReport, | ||||
| 
 | ||||
|   -- * Tests | ||||
|   tests_Hledger_Reports | ||||
|   tests_Hledger_Reports, | ||||
|   easytests_Reports | ||||
| ) | ||||
| where | ||||
| 
 | ||||
| @ -36,11 +36,13 @@ import Hledger.Reports.BudgetReport | ||||
| import Hledger.Utils.Test | ||||
| 
 | ||||
| tests_Hledger_Reports = TestList $ | ||||
|  -- ++ tests_isInterestingIndented | ||||
|  [ | ||||
|  tests_Hledger_Reports_ReportOptions, | ||||
|  tests_Hledger_Reports_EntriesReport, | ||||
|  tests_Hledger_Reports_PostingsReport, | ||||
|  tests_Hledger_Reports_BalanceReport, | ||||
|  tests_Hledger_Reports_MultiBalanceReport | ||||
|  ] | ||||
| 
 | ||||
| easytests_Reports = tests "Reports" [ | ||||
|    easytests_ReportOptions | ||||
|  ] | ||||
|  | ||||
| @ -1,10 +1,11 @@ | ||||
| {-# LANGUAGE RecordWildCards, DeriveDataTypeable #-} | ||||
| {-| | ||||
| 
 | ||||
| Options common to most hledger reports. | ||||
| 
 | ||||
| -} | ||||
| 
 | ||||
| {-# LANGUAGE OverloadedStrings, RecordWildCards, DeriveDataTypeable #-} | ||||
| 
 | ||||
| module Hledger.Reports.ReportOptions ( | ||||
|   ReportOpts(..), | ||||
|   BalanceType(..), | ||||
| @ -32,7 +33,7 @@ module Hledger.Reports.ReportOptions ( | ||||
|   specifiedStartDate, | ||||
|   specifiedEndDate, | ||||
| 
 | ||||
|   tests_Hledger_Reports_ReportOptions | ||||
|   easytests_ReportOptions | ||||
| ) | ||||
| where | ||||
| 
 | ||||
| @ -51,7 +52,7 @@ import Text.Megaparsec.Error | ||||
| 
 | ||||
| import Hledger.Data | ||||
| import Hledger.Query | ||||
| import Hledger.Utils | ||||
| import Hledger.Utils hiding (is) | ||||
| 
 | ||||
| 
 | ||||
| type FormatStr = String | ||||
| @ -371,21 +372,6 @@ queryFromOptsOnly _d ReportOpts{..} = simplifyQuery flagsq | ||||
|               ++ [Or $ map StatusQ statuses_] | ||||
|               ++ (maybe [] ((:[]) . Depth) depth_) | ||||
| 
 | ||||
| tests_queryFromOpts = [ | ||||
|  "queryFromOpts" ~: do | ||||
|   assertEqual "" Any (queryFromOpts nulldate defreportopts) | ||||
|   assertEqual "" (Acct "a") (queryFromOpts nulldate defreportopts{query_="a"}) | ||||
|   assertEqual "" (Desc "a a") (queryFromOpts nulldate defreportopts{query_="desc:'a a'"}) | ||||
|   assertEqual "" (Date $ mkdatespan "2012/01/01" "2013/01/01") | ||||
|                  (queryFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01") | ||||
|                                                       ,query_="date:'to 2013'" | ||||
|                                                       }) | ||||
|   assertEqual "" (Date2 $ mkdatespan "2012/01/01" "2013/01/01") | ||||
|                  (queryFromOpts nulldate defreportopts{query_="date2:'in 2012'"}) | ||||
|   assertEqual "" (Or [Acct "a a", Acct "'b"]) | ||||
|                  (queryFromOpts nulldate defreportopts{query_="'a a' 'b"}) | ||||
|  ] | ||||
| 
 | ||||
| -- | Convert report options and arguments to query options. | ||||
| queryOptsFromOpts :: Day -> ReportOpts -> [QueryOpt] | ||||
| queryOptsFromOpts d ReportOpts{..} = flagsqopts ++ argsqopts | ||||
| @ -393,15 +379,6 @@ queryOptsFromOpts d ReportOpts{..} = flagsqopts ++ argsqopts | ||||
|     flagsqopts = [] | ||||
|     argsqopts = snd $ parseQuery d (T.pack query_) | ||||
| 
 | ||||
| tests_queryOptsFromOpts = [ | ||||
|  "queryOptsFromOpts" ~: do | ||||
|   assertEqual "" [] (queryOptsFromOpts nulldate defreportopts) | ||||
|   assertEqual "" [] (queryOptsFromOpts nulldate defreportopts{query_="a"}) | ||||
|   assertEqual "" [] (queryOptsFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01") | ||||
|                                                              ,query_="date:'to 2013'" | ||||
|                                                              }) | ||||
|  ] | ||||
| 
 | ||||
| -- | The effective report span is the start and end dates specified by | ||||
| -- options or queries, or otherwise the earliest and latest transaction or  | ||||
| -- posting dates in the journal. If no dates are specified by options/queries | ||||
| @ -441,7 +418,29 @@ specifiedStartDate ropts = fst <$> specifiedStartEndDates ropts | ||||
| specifiedEndDate :: ReportOpts -> IO (Maybe Day) | ||||
| specifiedEndDate ropts = snd <$> specifiedStartEndDates ropts | ||||
| 
 | ||||
| -- tests | ||||
| 
 | ||||
| is :: (Eq a, Show a, HasCallStack) => a -> a -> Test () | ||||
| is = flip expectEq' | ||||
| 
 | ||||
| easytests_ReportOptions = tests "ReportOptions" [ | ||||
|    tests "queryFromOpts" [ | ||||
|       (queryFromOpts nulldate defreportopts) `is` Any | ||||
|      ,(queryFromOpts nulldate defreportopts{query_="a"}) `is` (Acct "a") | ||||
|      ,(queryFromOpts nulldate defreportopts{query_="desc:'a a'"}) `is` (Desc "a a") | ||||
|      ,(queryFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01"),query_="date:'to 2013'" })  | ||||
|       `is` (Date $ mkdatespan "2012/01/01" "2013/01/01") | ||||
|      ,(queryFromOpts nulldate defreportopts{query_="date2:'in 2012'"}) `is` (Date2 $ mkdatespan "2012/01/01" "2013/01/01") | ||||
|      ,(queryFromOpts nulldate defreportopts{query_="'a a' 'b"}) `is` (Or [Acct "a a", Acct "'b"]) | ||||
|      ] | ||||
| 
 | ||||
|   ,tests "queryOptsFromOpts" [ | ||||
|       (queryOptsFromOpts nulldate defreportopts) `is` [] | ||||
|      ,(queryOptsFromOpts nulldate defreportopts{query_="a"}) `is` [] | ||||
|      ,(queryOptsFromOpts nulldate defreportopts{period_=PeriodFrom (parsedate "2012/01/01") | ||||
|                                                                    ,query_="date:'to 2013'" | ||||
|                                                                    }) | ||||
|       `is` [] | ||||
|     ] | ||||
|  ] | ||||
| 
 | ||||
| tests_Hledger_Reports_ReportOptions = TestList $ | ||||
|     tests_queryFromOpts | ||||
|  ++ tests_queryOptsFromOpts | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user