#! /bin/env tclsh
package require csv
package require ycl::feeder::linefeeder
variable linefeeder [yclprefix]::feeder::linefeeder
package require ycl::yparse
variable yparse [yclprefix]::yparse
package require ycl::yparse::parser
variable yparser [yclprefix]::yparse::parser
package require ycl::yparse::parser::UsaaStatement
variable UsaaStatement [yclprefix]::yparse::parser::UsaaStatement
package require ycl::convert::usaa
variable usaa2csv [yclprefix]::convert::usaa::usaa2csv
package require ycl::test
proc suite1 {} {
variable linefeeder
variable yparse
variable yparser
variable test1_out
variable usaa2csv
variable UsaaStatement
test first {} -body {
set fh [open \
[file join [file dirname [info script]] UsaaStatement1.data]]
set parsers [dict create]
namespace eval test1 {
upvar usaa2csv usaa2csv
proc process args {
variable fields
variable results
variable usaa2csv
dict with args {}
if [info exists done] {
variable done 1
}
lappend results {*}[$usaa2csv fields $fields input $input]
}
variable done 0
variable results [list]
set fields {date reference amount description}
lappend results [::csv::join $fields]
}
set parser1 [${yparser}::new start start states \
${yparser}::UsaaStatement callbacks \
[list [namespace current]::test1::process]]
dict set parsers $parser1 [dict create]
#todo: shouldn't this be $yobj::object rather than ${yparse}::new?
set parseit [${yparse}::new $parsers]
set feeder [${linefeeder}::new $fh $parseit]
$feeder configure infilter ${UsaaStatement}::infilter
set ::results [list]
$feeder go
vwait [namespace current]::test1::done
return $test1::results
} -result $test1_out
}
proc go {} {
ycl::test::init
suite1
cleanupTests
}
variable test1_out {date,reference,amount,description {2010-01-09,,12100.00,LOC TRANSFER-USAA.COM} {2010-01-10,,0.25,ACH CREDIT 042420 TD AMERITRADE ACH MICRO * * * * * * * * * * * D B B D} {2010-04-16,,0.16,ACH CREDIT 042310 BLOOMFIELD CORP ACH MICRO * * * * * * * * * * * D B B D} {2010-01-12,,1100.00,ACH CREDIT 021211 BFJ HOME CLOUD PMT REFUND * * * * * * * * * * * 2 1 3 2} {2010-01-17,,3200.00,OD CC ADVANCE} {2010-01-19,,0.22,INTEREST PAID} 2010-01-22,211,-7000.00, 2010-01-20,313*,-4000.00, 2010-01-23,214,-153.70, 2010-01-17,198213*,-1232.37, {2010-12-29,,-500.00,USAA FUNDS TRANSFER DB} {2010-01-25,,-5250.00,ACH DEBIT 022470 USAA.COM PAYMNT CREDIT CRD * * * * * * * * * * * 1 7 1 4} {2010-01-29,,-9000.00,ACH PAYMENT 053213 USAA.COM PAYMNT LOAN ***********3848} {2010-01-01,,-1000.00,USAA FUNDS TRANSFER DB} {2010-01-05,,-40.00,PHOTOCOPY/RESEARCH FEE} {2010-01-13,,-200.00,USAA FUNDS TRANSFER DB} {2010-01-11,,-700.00,USAA FUNDS TRANSFER DB} {2010-01-19,,-1300.00,ACH DEBIT 021310 H MOTFIELD ONLINE PMT * * * * * * * * * * * 7 P O S} {2010-01-22,,-0.17,ACH DEBIT 041570 WILSON ACCUPOINT ACH RECAPT * * * * * * * * * * * D A T P}}