X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F050_metaclasses%2F014_goto_moose_import.t;h=06437ac338225d05ce66fb37d42170e2278a7ea0;hb=3b400403de25dc3988b05a7b56a714db8f57f029;hp=77f45ffcf5a403ee98cda53d2fcd83cb77df1c74;hpb=e16d86b97dac20504e2cbfa56b74426b384ab4aa;p=gitmo%2FMoose.git diff --git a/t/050_metaclasses/014_goto_moose_import.t b/t/050_metaclasses/014_goto_moose_import.t index 77f45ff..06437ac 100644 --- a/t/050_metaclasses/014_goto_moose_import.t +++ b/t/050_metaclasses/014_goto_moose_import.t @@ -3,7 +3,7 @@ use strict; use warnings; -use Test::More tests => 2; +use Test::More; use Test::Exception; # Some packages out in the wild cooperate with Moose by using goto @@ -20,6 +20,10 @@ use Test::Exception; sub import { goto &Moose::import; } + + sub unimport { + goto &Moose::unimport; + } } { @@ -27,10 +31,19 @@ use Test::Exception; MooseAlike1->import(); - ::lives_ok( sub { has( 'size' ) }, + ::lives_ok( sub { has( 'size', is => 'bare' ) }, 'has was exported via MooseAlike1' ); + + MooseAlike1->unimport(); } +ok( ! Foo->can('has'), + 'No has sub in Foo after MooseAlike1 is unimported' ); +ok( Foo->can('meta'), + 'Foo has a meta method' ); +isa_ok( Foo->meta(), 'Moose::Meta::Class' ); + + { package MooseAlike2; @@ -43,6 +56,11 @@ use Test::Exception; sub import { goto $import; } + + my $unimport = \&Moose::unimport; + sub unimport { + goto $unimport; + } } { @@ -50,10 +68,17 @@ use Test::Exception; MooseAlike2->import(); - ::lives_ok( sub { has( 'size' ) }, + ::lives_ok( sub { has( 'size', is => 'bare' ) }, 'has was exported via MooseAlike2' ); -} + MooseAlike2->unimport(); +} +ok( ! Bar->can('has'), + 'No has sub in Bar after MooseAlike2 is unimported' ); +ok( Bar->can('meta'), + 'Bar has a meta method' ); +isa_ok( Bar->meta(), 'Moose::Meta::Class' ); +done_testing;