X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=t%2Fhelper%2Fcsv.t;h=bab3825df595fd24586336c86d0ea3aa2d2d5e70;hb=1b78cf64795c68736a33059dfa0ad81cbc50e812;hp=809dfb11a10763a09b738a335bb8b2d0ec86e4b6;hpb=efb9a24f2252104ab4af5c25334119d7c5c70a8c;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index 809dfb11a..bab3825df 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,4 +1,4 @@ -use Test::More tests => 71; +use Test::More tests => 75; use lib 't'; use utf8; @@ -551,6 +551,55 @@ ok !$csv->_check_multiplexed, 'multiplex check detects empty header'; ##### +$csv = SL::Helper::Csv->new( + file => \ Encode::encode('utf-8', < [ + {class => 'SL::DB::Part', row_ident => 'P'}, + {class => 'SL::DB::Customer', row_ident => 'C'}, + ], + ignore_unknown_columns => 1, +); +$csv->parse; +is $csv->_multiplex_datatype_position, 2, 'multiplex check detects datatype field position right'; + +is_deeply $csv->get_data, [ { datatype => 'P', description => 'Kaffee', longdescription => 'lecker Kaffee' }, + { datatype => 'C', name => 'Meier', customernumber => 1}, + { datatype => 'P', description => 'Bier', longdescription => 'kühles Bier' }, + { datatype => 'C', name => 'Mueller', customernumber => 2} + ], + 'multiplex: datatype not at first position works'; + +##### + +$csv = SL::Helper::Csv->new( + file => \ Encode::encode('utf-8', < [ + {class => 'SL::DB::Part', row_ident => 'P'}, + {class => 'SL::DB::Customer', row_ident => 'C'}, + ], + ignore_unknown_columns => 1, +); +ok !$csv->parse, 'multiplex check detects incosistent datatype field position'; +is_deeply( ($csv->errors)[0], [ 0, 'datatype field must be at the same position for all datatypes for multiplexed data', 0, 0 ], 'multiplex data with inconsistent datatype field posiotion throws error'); + +##### + $csv = SL::Helper::Csv->new( file => \"Datatype;Description\nDatatype;Name\nP;Kaffee\nC;Meier", # " # make emacs happy case_insensitive_header => 1,