Getopt-Param
view release on metacpan or search on metacpan
t/01.methods.t view on Meta::CPAN
use Test::More tests => 44;
BEGIN {
use_ok( 'Getopt::Param' );
}
diag( "Testing Getopt::Param $Getopt::Param::VERSION methods" );
my @cst = qw(
--alone
--empty-equals=
--equals-string=foo
--multi=1
--multi=2
--multi=3
invalid
);
push @cst, '--equals-phrase=foo bar baz'; # its called like this: --equals-phrase="foo bar baz"
my $par = Getopt::Param->new({
'array_ref' => \@cst,
'quiet' => 1, # Gauranteed a 'Argument 6 did not match (?-xism:^--)'
});
my $inc;
{
local @ARGV = @cst;
$inc = Getopt::Param->new({ 'quiet' => 1 });
}
my %val = (
'alone' => '--alone',
'empty-equals' => '',
'equals-string' => 'foo',
'equals-phrase' => 'foo bar baz',
);
my %tst = (
'1' => ' - from array_ref key in new()',
'2' => ' - from @ARGV',
);
my $prm = 1;
my $scalar = $par->param('multi');
ok($scalar eq '1', 'scalar context' . $tst{ $prm });
my $array = join ',', sort $par->param('multi');
ok($array eq '1,2,3', 'array context' . $tst{ $prm });
my $keys = join ',', sort $par->param();
ok($keys eq 'alone,empty-equals,equals-phrase,equals-string,multi', 'no args' . $tst{ $prm });
$par->param('new', 1,2,3);
my $new = join ',', sort $par->param('new');
ok($new eq '1,2,3', 'new param' . $tst{ $prm });
$par->param('new', 'n1', 'n2');
my $edit = join ',', sort $par->param('new');
ok($edit eq 'n1,n2', 'update param' . $tst{ $prm });
$par->append_param('new', 'atend');
my $apnd = join ',', $par->param('new');
ok($apnd eq 'n1,n2,atend', 'append param' . $tst{ $prm });
$par->prepend_param('new', 'atfront', 'front2');
my $prpd = join ',', $par->param('new');
ok($prpd eq 'atfront,front2,n1,n2,atend', 'prepend param' . $tst{ $prm });
ok($par->exists_param('new') eq '1', 'does exist' . $tst{ $prm });
ok(ref $par->delete_param('new') eq 'ARRAY', 'delete return' . $tst{ $prm });
ok(!$par->exists_param('new'), 'does not exist' . $tst{ $prm });
for my $key ( sort keys %val ){
ok($par->param($key) eq $val{ $key }, "proper value: $key");
}
{
my $prm = 2;
my $scalar = $inc->param('multi');
ok($scalar eq '1', 'scalar context' . $tst{ $prm });
my $array = join ',', sort $inc->param('multi');
( run in 0.525 second using v1.01-cache-2.11-cpan-98e64b0badf )