Add Moose::Deprecated, and clean up use of deprecated features in tests
[gitmo/Moose.git] / t / 050_metaclasses / 014_goto_moose_import.t
index 77f45ff..06437ac 100644 (file)
@@ -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;