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
sub import {
goto &Moose::import;
}
+
+ sub unimport {
+ goto &Moose::unimport;
+ }
}
{
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;
sub import {
goto $import;
}
+
+ my $unimport = \&Moose::unimport;
+ sub unimport {
+ goto $unimport;
+ }
}
{
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;