[test-budget] augment to test budget-income-statement.scm

This commit is contained in:
Christopher Lam
2019-10-02 21:49:41 +08:00
parent 8f1c82e875
commit 992f657cc5

View File

@@ -31,18 +31,26 @@
(use-modules (gnucash engine))
(use-modules (sw_engine))
(use-modules (gnucash report standard-reports budget))
(use-modules (gnucash report standard-reports budget-income-statement))
(use-modules (gnucash report report-system test test-extras))
(use-modules (gnucash report stylesheets))
(use-modules (gnucash engine test test-extras))
(use-modules (sxml xpath))
;; Explicitly set locale to make the report output predictable
(setlocale LC_ALL "C")
(define uuid "810ed4b25ef0486ea43bbd3dddb32b11")
(define budget-uuid "810ed4b25ef0486ea43bbd3dddb32b11")
(define budget-is-uuid "583c313fcc484efc974c4c844404f454")
(define (run-test)
(test-runner-factory gnc:test-runner)
(test-begin "budget")
(test-budget)
(test-group-with-cleanup "budget.scm"
(test-budget)
(teardown))
(test-group-with-cleanup "budget-income-statement.scm"
(test-budget-income-statement)
(teardown))
(test-end "budget"))
(define (set-option options page tag value)
@@ -51,7 +59,7 @@
(define (teardown)
(gnc-clear-current-session))
(define (options->sxml options test-title)
(define (options->sxml options uuid test-title)
(gnc:options->sxml uuid options "test-budget" test-title))
(define (create-budget-and-transactions env account-alist)
@@ -88,15 +96,16 @@
(let* ((env (create-test-env))
(account-alist (create-test-data))
(budget (create-budget-and-transactions env account-alist))
(options (gnc:make-report-options uuid))
(options (gnc:make-report-options budget-uuid))
(bank (cdr (assoc "Bank" account-alist))))
(display "\nbudget.scm\n")
(set-option options "Accounts" "Account Display Depth" 'all)
(set-option options "Display" "Show Difference" #f)
(set-option options "Display" "Show Budget" #f)
(set-option options "Display" "Show Actual" #f)
(let ((sxml (options->sxml options "basic all display off")))
(let ((sxml (options->sxml options budget-uuid "basic all display off")))
(test-equal "all display OFF, table has 15 cells"
15
(length (sxml->table-row-col sxml 1 #f #f))))
@@ -105,7 +114,7 @@
(set-option options "Display" "Show Budget" #t)
(set-option options "Display" "Show Actual" #t)
(set-option options "Display" "Show Column with Totals" #t)
(let ((sxml (options->sxml options "basic")))
(let ((sxml (options->sxml options budget-uuid "basic")))
(test-equal "all display ON, table has 226 cells"
226
(length (sxml->table-row-col sxml 1 #f #f)))
@@ -128,7 +137,7 @@
(set-option options "General" "Report for range of budget periods" #t)
(set-option options "General" "Range start" 'current)
(set-option options "General" "Range end" 'next)
(let ((sxml (options->sxml options "only next period")))
(let ((sxml (options->sxml options budget-uuid "only next period")))
(test-equal "only next period - 133 cells"
133
(length (sxml->table-row-col sxml 1 #f #f)))
@@ -140,7 +149,7 @@
(set-option options "General" "Range start" 'last)
(set-option options "General" "Range end" 'last)
(let ((sxml (options->sxml options "only last period")))
(let ((sxml (options->sxml options budget-uuid "only last period")))
(test-equal "only last period - 102 cells"
102
(length (sxml->table-row-col sxml 1 #f #f)))
@@ -156,7 +165,7 @@
(set-option options "General" "Exact end period" 4)
(set-option options "General" "Include collapsed periods before selected." #f)
(set-option options "General" "Include collapsed periods after selected." #f)
(let ((sxml (options->sxml options "exact periods")))
(let ((sxml (options->sxml options budget-uuid "exact periods")))
(test-equal "exact periods - 133 cells"
133
(length (sxml->table-row-col sxml 1 #f #f)))
@@ -167,9 +176,33 @@
(sxml->table-row-col sxml 1 5 #f)))
(set-option options "General" "Use accumulated amounts" #t)
(let ((sxml (options->sxml options "Use accumulated amounts")))
(let ((sxml (options->sxml options budget-uuid "Use accumulated amounts")))
(test-equal "use accumulated amounts"
'("Bank" "$60.00" "$15.00" "$45.00" "$60.00" "$82.00" "-$22.00"
"$120.00" "$159.00" "-$39.00" "$120.00" "$159.00" "-$39.00")
(sxml->table-row-col sxml 1 5 #f)))
))
(define (test-budget-income-statement)
(let* ((env (create-test-env))
(account-alist (create-test-data))
(budget (create-budget-and-transactions env account-alist))
(options (gnc:make-report-options budget-is-uuid))
(bank (assoc-ref account-alist "Bank")))
(display "\nbudget-income-statement.scm\n")
(let ((sxml (options->sxml options budget-is-uuid "budget-is-basic")))
(test-equal "basic test"
72
(length (sxml->table-row-col sxml 1 #f #f)))
(test-equal "budgeted income amounts"
'("$195.00" "Income")
((sxpath '(// table // (tr 1) // table // (tr 3) // *text*))
sxml))
(test-equal "net loss for budget"
'("Net loss for Budget test budget" "$285.00")
((sxpath '(// table // (tr 2) // table // (tr 5) // *text*))
sxml)))))