9 use Test::More tests => 6;
13 my $pargs = $tr->parser_args;
15 my @fields = split /$pargs->{'delimiter'}/, $data;
20 # The "data" to be parsed
21 my $data = q(Id|Name|Phone Number|Favorite Flavor|);
23 my $tr = SQL::Translator->new;
25 # Pass parser_args as an explicit method call
26 $tr->parser(\&silly_parser);
27 $tr->parser_args(delimiter => '\|');
29 my $pargs = $tr->parser_args;
30 my $parsed = $tr->translate(\$data);
32 is($pargs->{'delimiter'}, '\|',
33 "parser_args works when called directly");
34 is(scalar @{$parsed}, 4,
35 "right number of fields");
37 # Now, pass parser_args indirectly...
38 $tr->parser(\&silly_parser, { delimiter => "\t" });
41 $pargs = $tr->parser_args;
42 $parsed = $tr->translate(\$data);
44 is($pargs->{'delimiter'}, "\t",
45 "parser_args works when called indirectly");
47 is(scalar @{$parsed}, 4,
48 "right number of fields with new delimiter");
51 $tr = SQL::Translator->new(parser => \&silly_parser,
52 parser_args => { delimiter => ":" });
54 $pargs = $tr->parser_args;
55 $parsed = $tr->translate(\$data);
57 is($pargs->{'delimiter'}, ":",
58 "parser_args works when called as constructor arg");
60 is(scalar @{$parsed}, 4,
61 "right number of fields with new delimiter");