X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Fhelper%2Fcsv.t;h=13bcba7c7c762f8c28565342e3a82c622ddcda45;hb=f65440cb9d28d4862facc50858bd25fa138cb211;hp=e3247263d1327ad70db22722d55fd1cdb5f004c3;hpb=5f55d797e05b1f29d4d7fbeed0d7b8f67895634c;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index e3247263d..13bcba7c7 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,4 +1,4 @@ -use Test::More tests => 86; +use Test::More tests => 91; use lib 't'; use utf8; @@ -141,7 +141,7 @@ EOL profile => [{class => 'SL::DB::Part'}], ); $csv->parse; -is $csv->get_objects->[0]->lastcost, '1221.52', 'ignore_unkown_columns works'; +is $csv->get_objects->[0]->lastcost, '1221.52', 'ignore_unknown_columns works'; ##### @@ -382,6 +382,39 @@ $csv->parse; is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'without profile and class works'; ##### + +$csv = SL::Helper::Csv->new( + file => \<parse; +is_deeply $csv->get_data, [ {partnumber => 1, description => 'Kaffee'}, {partnumber => '', description => ' '}, {partnumber => 3, description => 'Tee'} ], 'ignoring empty lines works (header in csv file)'; + +##### + +$csv = SL::Helper::Csv->new( + file => \< ['description', 'partnumber'], +); +ok $csv->parse; +is_deeply $csv->get_data, [ {partnumber => 1, description => 'Kaffee'}, {partnumber => '', description => ' '}, {partnumber => 3, description => 'Tee'} ], 'ignoring empty lines works'; + +##### + $csv = SL::Helper::Csv->new( file => \"Kaffee;1,50\nSchoke;0,89\n", header => [ @@ -726,6 +759,36 @@ ok $csv->get_objects->[0], 'multiplex: empty path gets ignored in object creatio ##### +$csv = SL::Helper::Csv->new( + file => \< 1, + profile => [ { class => 'SL::DB::Customer', row_ident => 'C' }, + { class => 'SL::DB::Part', row_ident => 'P' }, + ], +); +$csv->parse; +is_deeply $csv->get_data, [ + {datatype => 'C', customernumber => 1000, name => 'Meier'}, + {datatype => 'P', partnumber => 1, description => 'Kaffee'}, + {datatype => 'C', customernumber => undef, name => undef}, + {datatype => 'P', partnumber => '', description => ' '}, + {datatype => 'C', customernumber => 2000, name => 'Meister'}, + {datatype => 'P', partnumber => '3', description => 'Tee'}, +], 'ignoring empty lines works (multiplex data)'; + +##### + # Mappings # simple case $csv = SL::Helper::Csv->new(