— |
#!perl -T
BEGIN { use_ok( 'Sub::Exporter' ); }
sub is_defined {
my ( $class , $value , $arg ) = @_ ;
return defined $value ;
}
my $counter = 0;
my $config = {
exports => [ qw(circsaw drill handsaw nailgun) ],
collectors => [
INIT => sub {
my ( $value , $arg ) = @_ ;
return 0 if @{ $arg ->{import_args}};
$_ [0] = [ $counter ++ ];
return 1;
},
]
};
$config ->{ $_ } = mkopt_hash( $config ->{ $_ }) for qw(exports collectors) ;
{
my $collection = Sub::Exporter::_collect_collections(
$config ,
[ ],
'main' ,
);
is_deeply(
$collection ,
{ INIT => [ 0 ] },
"collection returned properly from collector" ,
);
}
{
my $collection = eval {
Sub::Exporter::_collect_collections(
$config ,
[ [ handsaw => undef ] ],
'main' ,
);
};
like(
$@,
qr/INIT failed/ ,
"the init collector is run even when other things are here" ,
);
}
|