Acme-Tools

 view release on metacpan or  search on metacpan

t/45_opts.t  view on Meta::CPAN

# make;perl -Iblib/lib t/45_opts
use lib '.'; BEGIN{require 't/common.pl'}
use Test::More tests => 18;
sub check_opts {
  my($def,$arin,$ar_exp,$hr_exp,$die)=@_;
  my %o;
  my @a = eval{ opts($def,\%o,@$arin) };
  if($die){
    ok( ref($die) eq 'Regexp' ? ($@=~/$die/) : $@, $@=~s, at /.*,,rs );
  } else {
    is_deeply(\@a,$ar_exp,srlz(\@a,'a')=~s,\n,,r);
    is_deeply(\%o,$hr_exp,srlz(\%o,'o')=~s,\n,,r);
  }
}
check_opts('ks:',[qw(-k -s str 1 2 3 4)],[1..4],{k=>1,s=>'str'});
check_opts('ks:',[qw(-k -- -s str 1 2 3 4)],['-s','str',1..4],{k=>1});
check_opts('ks:j',[qw(-k -s str -j 1 2 3 4)],[1..4],{k=>1,j=>1,s=>'str'});
check_opts('ks:x',[qw(-k -s str -j 1 2 3 4)],undef,undef,qr/unknown opt -j/);
check_opts('ks:j',[qw(-k -s str -j 1 -s str2 2 3 4)],[1..4],{k=>1,j=>1,s=>'str,str2'});
check_opts('ks:j',[qw(-k -sstr  -j 1 -s str2 2 3 4)],[1..4],{k=>1,j=>1,s=>'str,str2'});
check_opts('ks:j',[qw(-k -sstr  -j1 -s str2 2 3 4)],undef,undef,qr/has no arg/);
check_opts('ks:j',[qw(-kj -sstr 1 -s str2 2 3 4)],[1..4],{k=>1,j=>1,s=>'str,str2'});
check_opts('ks:je',[qw(-kje -sstr 1 -s str2 2 3 4)],[1..4],{e=>1,k=>1,j=>1,s=>'str,str2'});
check_opts('ks:jet:',[qw(-kjetil -sstr 1 -s str2 2 3 4)],[1..4],{e=>1,k=>1,j=>1,s=>'str,str2',t=>'il'});



( run in 1.126 second using v1.01-cache-2.11-cpan-d80b1682f3f )