X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F01simple.t;h=2d518734430c11e5ccd99b36197485bffd317b66;hb=815b5be2c946367c4d74c815599ea9d706c0f5e3;hp=535d499f309b5b56e0800ac4eef233efd34998e6;hpb=f9c096bb0bb7309f1be31d001f7eba966bb273de;p=p5sagit%2FPackage-Variant.git diff --git a/t/01simple.t b/t/01simple.t index 535d499..2d51873 100644 --- a/t/01simple.t +++ b/t/01simple.t @@ -7,7 +7,7 @@ my @DECLARED; BEGIN { package TestSugar; - use Exporter; + use Exporter 'import'; our @EXPORT_OK = qw( declare ); sub declare { push @DECLARED, [@_] } $INC{'TestSugar.pm'} = __FILE__; @@ -36,9 +36,11 @@ BEGIN { $INC{'TestVariable.pm'} = __FILE__; } -use TestVariable; - -my $variant = TestVariable(3..7); +my $variant = do { + package TestScopeA; + use TestVariable; + TestVariable(3..7); +}; ok defined($variant), 'new variant is a defined value'; ok length($variant), 'new variant has length'; @@ -49,8 +51,38 @@ is_deeply shift(@DECLARED), [target => $variant], 'target passed via proxy'; is_deeply shift(@DECLARED), [args => [3..7]], 'arguments passed via proxy'; -is_deeply shift(@DECLARED), [class => $variant], +is_deeply shift(@DECLARED), [class => 'TestVariable'], 'class method resolution'; is scalar(@DECLARED), 0, 'proxy sub called right amount of times'; +use TestVariable as => 'RenamedVar'; +is exception { + my $renamed = RenamedVar(9..12); + is_deeply $renamed->args, [9..12], 'imported generator can be renamed'; +}, undef, 'no errors for renamed usage'; + +my @imported; +BEGIN { + package TestImportableA; + sub import { push @imported, shift } + $INC{'TestImportableA.pm'} = __FILE__; + package TestImportableB; + sub import { push @imported, shift } + $INC{'TestImportableB.pm'} = __FILE__; + package TestArrayImports; + use Package::Variant + importing => [ + TestImportableA => undef, + TestImportableB => undef, + ]; + sub make_variant { } + $INC{'TestArrayImports.pm'} = __FILE__; +} + +use TestArrayImports; +TestArrayImports(23); + +is_deeply [@imported], [qw( TestImportableA TestImportableB )], + 'multiple imports in the right order'; + done_testing;