X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=t%2Fhelper%2Fcsv.t;h=4e7ef121c5d4a0bbbdac270da509e9b84f2732ef;hb=9570ab38dd8347c448a83623eb31e05379d3bd29;hp=e54dcb6fc2a4659e2ec52856483c5714ff25b5fd;hpb=0929406862437bd518db874e311845dcf14cdc15;p=kivitendo-erp.git diff --git a/t/helper/csv.t b/t/helper/csv.t index e54dcb6fc..4e7ef121c 100644 --- a/t/helper/csv.t +++ b/t/helper/csv.t @@ -1,37 +1,36 @@ -use Test::More tests => 36; -use SL::Dispatcher; +use Test::More tests => 40; + +use lib 't'; + use Data::Dumper; use utf8; +use_ok 'Support::TestSetup'; use_ok 'SL::Helper::Csv'; -my $csv; -$csv = SL::Helper::Csv->new( +Support::TestSetup::login(); + +my $csv = SL::Helper::Csv->new( file => \"Kaffee\n", header => [ 'description' ], + class => 'SL::DB::Part', ); -isa_ok $csv->_csv, 'Text::CSV'; +isa_ok $csv->_csv, 'Text::CSV_XS'; isa_ok $csv->_io, 'IO::File'; isa_ok $csv->parse, 'SL::Helper::Csv', 'parsing returns self'; is_deeply $csv->get_data, [ { description => 'Kaffee' } ], 'simple case works'; -$csv->class('SL::DB::Part'); - is $csv->get_objects->[0]->description, 'Kaffee', 'get_object works'; #### -SL::Dispatcher::pre_startup_setup(); - -$::form = Form->new; $::myconfig{numberformat} = '1.000,00'; $::myconfig{dateformat} = 'dd.mm.yyyy'; -$::locale = Locale->new('de'); $csv = SL::Helper::Csv->new( file => \"Kaffee;0.12;12,2;1,5234\n", header => [ 'description', 'sellprice', 'lastcost_as_number', 'listprice' ], - dispatch => { listprice => 'listprice_as_number' }, + profile => { listprice => 'listprice_as_number' }, class => 'SL::DB::Part', ); $csv->parse; @@ -50,7 +49,7 @@ Kaffee,0.12,'12,2','1,5234' EOL sep_char => ',', quote_char => "'", - dispatch => { listprice => 'listprice_as_number' }, + profile => { listprice => 'listprice_as_number' }, class => 'SL::DB::Part', ); $csv->parse; @@ -202,7 +201,7 @@ $csv->parse; print Dumper($csv->errors); -my @mm = $csv->get_objects->[0]->makemodel; +@mm = $csv->get_objects->[0]->makemodel; is scalar @mm, 1, 'multiple one-to-many dispatch'; is $csv->get_objects->[0]->makemodels->[0]->model, 'Chair 0815', '...check 1'; is $csv->get_objects->[0]->makemodels->[0]->make, '213', '...check 2'; @@ -264,5 +263,33 @@ $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