Finance-Bank-SentinelBenefits-Csv401kConverter

 view release on metacpan or  search on metacpan

t/qif_writer.t  view on Meta::CPAN

use Test::More tests => 19;
use Modern::Perl;
use DateTime;
use lib './lib';

use File::Temp qw(tempfile);

use_ok( 'Finance::Bank::SentinelBenefits::Csv401kConverter::QifWriter' );

my $date = DateTime->new( year   => 1964,
			      month  => 10,
			      day    => 16,);


diag("Header tests");
{

  my ($temp_fh, $temp_filename) = tempfile(UNLINK=>1);

  diag("Temp file is $temp_filename, will be auto-removed");


  {#make sure that it goes out of scope, forcing the underlying writer to close
    my $writer = Finance::Bank::SentinelBenefits::Csv401kConverter::QifWriter->
      new(
	  output_file => ">$temp_filename",
	  account => 'TestAccount',
	  trade_date => $date,
	 );

    isnt($writer, undef, "Construction works");
  }

  my $fh;

  open ($fh, $temp_filename) or die "Can't open temp file";
  ok($fh, "Able to open temp file");

  matchHeader($fh);

  # my @expected = ('!Account', 'NTestAccount', 'TType:Invst');
  # my $index = 0;
  # while(<$fh>){
  #   if($index >= @expected){
  #     last;
  #   }
  #   my $item = chop($_);
  #   warn($item);
  #   is($_, $expected[$index++], "Header should match expected");
  # }

  close($fh) or die "Can't close temp file";
}

diag("Write one line tests - deferral");
{
  my ($temp_fh, $temp_filename) = tempfile(UNLINK=>0);

  diag("Temp file is $temp_filename, will be auto-removed");

  {#make sure that it goes out of scope, forcing the underlying writer to close
    my $writer = Finance::Bank::SentinelBenefits::Csv401kConverter::QifWriter->



( run in 0.718 second using v1.01-cache-2.11-cpan-d80b1682f3f )