#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Exporter::Declare ':all';
BEGIN {
require_ok( 'Exodist::Util::Package' );
Exodist::Util::Package->import( ':all' );
}
can_ok( __PACKAGE__, qw/
inject_sub
package_subs
package_sub_map
/);
ok( !__PACKAGE__->can( 'xxx' ), "Cannot 'xxx'" );
inject_sub( __PACKAGE__, 'xxx', sub { 'xxx' });
can_ok( __PACKAGE__, 'xxx' );
{
package AAAA;
sub a {'a'}
sub b {'b'}
sub c {'c'}
}
is_deeply(
[ sort( package_subs('AAAA')) ],
[qw/a b c/],
"Got all subs"
);
is_deeply(
{ package_sub_map('AAAA') },
{ map {( $_ => AAAA->can($_) || undef )} qw/a b c/ },
"Got sub map"
);
done_testing;