X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=t%2Fhelper%2Fcsv.t;h=e4a625430b6ce836ed06eebc7469716a7cb840c5;hb=220ccac9cc13afd496050420c635c50d4a65c2c5;hp=cc009940d7bf699e91f6aa935d6b6732ed122555;hpb=c46898c7a2328d211465818380178e25331d8f3c;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index cc009940d..e4a625430 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,4 +1,4 @@ -use Test::More tests => 31; +use Test::More tests => 39; use SL::Dispatcher; use Data::Dumper; use utf8; @@ -225,4 +225,72 @@ is $csv->parse, undef, 'wrong profile gets rejected'; is_deeply $csv->errors, [ 'buchungsgruppen.1.description', undef, "Profile path error. Indexed relationship is not OneToMany around here: 'buchungsgruppen.1'", undef ,0 ], 'error indicates wrong header'; isa_ok( ($csv->errors)[0], 'SL::Helper::Csv::Error', 'Errors get objectified'); +#### + +$csv = SL::Helper::Csv->new( + file => \< '1,000.00', + ignore_unknown_columns => 1, + strict_profile => 1, + class => 'SL::DB::Part', + profile => { + lastcost => 'lastcost_as_number', + } +); +$csv->parse; +is $csv->get_objects->[0]->lastcost, '1221.52', 'strict_profile with ignore'; +is $csv->get_objects->[0]->sellprice, undef, 'strict profile with ignore 2'; + +#### + +$csv = SL::Helper::Csv->new( + file => \< '1,000.00', + strict_profile => 1, + class => 'SL::DB::Part', + profile => { + lastcost => 'lastcost_as_number', + } +); +$csv->parse; + +is_deeply( ($csv->errors)[0], [ 'description', undef, 'header field \'description\' is not recognized', undef, 0 ], 'strict_profile without ignore_columns throws error'); + +##### + +$csv = SL::Helper::Csv->new( + file => \"Kaffee", + header => [ 'description' ], + class => 'SL::DB::Part', +); +$csv->parse; +is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'eol bug at the end of files'; + +##### + +$csv = SL::Helper::Csv->new( + file => \"Description\nKaffee", + class => 'SL::DB::Part', +); +$csv->parse; +is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive header from csv works'; + +##### + +$csv = SL::Helper::Csv->new( + file => \"Kaffee", + header => [ 'Description' ], + class => 'SL::DB::Part', +); +$csv->parse; +is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'case insensitive header as param works'; + # vim: ft=perl