X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2FPackage-Variant.git;a=blobdiff_plain;f=t%2F01simple.t;h=4bb45482daa5b7a43d155f9231ee5df5b0987271;hp=3d3813dd4996420bf6fe1b84af9fb81aab7947c2;hb=185a0b334446d0d1642be7e89c34da88f3b0bff6;hpb=f11ad9c91fdc553f1b814e4636861e75eb1ebd7d diff --git a/t/01simple.t b/t/01simple.t index 3d3813d..4bb4548 100644 --- a/t/01simple.t +++ b/t/01simple.t @@ -36,25 +36,30 @@ BEGIN { $INC{'TestVariable.pm'} = __FILE__; } -my $variant = do { +my ($variant, $named_variant) = do { package TestScopeA; use TestVariable; - TestVariable(3..7); + (TestVariable(3..7), TestVariable_named("Name", 3..7)); }; -ok defined($variant), 'new variant is a defined value'; -ok length($variant), 'new variant has length'; -is $variant->target, $variant, 'target was new variant'; -is_deeply $variant->args, [3..7], 'correct arguments received'; - -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 => 'TestVariable'], - 'class method resolution'; +for ($variant, $named_variant) { + ok defined($_), 'new variant is a defined value'; + ok length($_), 'new variant has length'; + is $_->target, $_, 'target was new variant'; + is_deeply $_->args, [3..7], 'correct arguments received'; + + is_deeply shift(@DECLARED), [target => $_], + 'target passed via proxy'; + is_deeply shift(@DECLARED), [args => [3..7]], + 'arguments passed via proxy'; + is_deeply shift(@DECLARED), [class => 'TestVariable'], + 'class method resolution'; +} + is scalar(@DECLARED), 0, 'proxy sub called right amount of times'; +ok $named_variant->isa("Name"), 'created class can be named'; + use TestVariable as => 'RenamedVar'; is exception { my $renamed = RenamedVar(9..12); @@ -107,6 +112,14 @@ TestSingleImport::->build_variant; is_deeply [@imported], [qw( TestImportableA )], 'build_variant works'; +@imported = (); + +is( TestSingleImport::->build_named_variant("Named"), "Named", + "build_named_variant applies name" ); + +is_deeply [@imported], [qw( TestImportableA )], + 'build_variant works'; + like exception { Package::Variant->import( importing => \'foo', subs => [qw( foo )],