Devel-Decouple

 view release on metacpan or  search on metacpan

t/01.build.t  view on Meta::CPAN

use Test::More;
use Test::Differences;
use Test::Deep;
use Test::Exception;

use Devel::Decouple;
use lib 't';
use TestMod::Baz;

my $class  = 'Devel::Decouple';
my $module = 'TestMod::Baz';
my @modules = qw{
        TestMod::Foo
        TestMod::Bar };
my @functions = qw{
        prohibit
        inhibit };
my @methods = qw{
        new
        decouple
        from
        function
        functions
        as
        default_sub
        preserved
        module
        modules
        called_imports };


BASIC: {
    my $DD = Devel::Decouple->new();
    
    isa_ok( $DD,    $class );
    can_ok( $class, @methods );
}

SUGAR_SYNTAX: {
    my $expected = {
        'TestMod::Baz'  =>  [qw{ TestMod::Foo TestMod::Bar }],
        prohibit        =>  sub { return 1 },
        inhibit         =>  sub { return 1 },
        _DEFAULT_       =>  '_PRESERVED_',
    };
    
    # these should all be equivalent to $expected
    
    my $got1 = {
        $module,             from @modules,
        function 'prohibit', as { return 1 },
        function 'inhibit',  as { return 1 },
        default_sub,         preserved,
    };
    
    my $got2 = {
        $module,             from @modules,
        default_sub,         preserved,
        function 'prohibit', as { return 1 },
        function 'inhibit',  as { return 1 },
    };
    



( run in 0.579 second using v1.01-cache-2.11-cpan-aadc1410aed )