Cleanup failing tests
[gitmo/Mouse.git] / Moose-t-failing / 050_metaclasses / 014_goto_moose_import.t
diff --git a/Moose-t-failing/050_metaclasses/014_goto_moose_import.t b/Moose-t-failing/050_metaclasses/014_goto_moose_import.t
new file mode 100644 (file)
index 0000000..4b5ea9e
--- /dev/null
@@ -0,0 +1,88 @@
+#!/usr/bin/perl
+# This is automatically generated by author/import-moose-test.pl.
+# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
+use t::lib::MooseCompat;
+
+use strict;
+use warnings;
+
+use Test::More;
+$TODO = q{Mouse is not yet completed};
+use Test::Exception;
+
+# Some packages out in the wild cooperate with Mouse by using goto
+# &Mouse::import. we want to make sure it still works.
+
+{
+    package MooseAlike1;
+
+    use strict;
+    use warnings;
+
+    use Mouse ();
+
+    sub import {
+        goto &Mouse::import;
+    }
+
+    sub unimport {
+        goto &Mouse::unimport;
+    }
+}
+
+{
+    package Foo;
+
+    MooseAlike1->import();
+
+    ::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(), 'Mouse::Meta::Class' );
+
+
+{
+    package MooseAlike2;
+
+    use strict;
+    use warnings;
+
+    use Mouse ();
+
+    my $import = \&Mouse::import;
+    sub import {
+        goto $import;
+    }
+
+    my $unimport = \&Mouse::unimport;
+    sub unimport {
+        goto $unimport;
+    }
+}
+
+{
+    package Bar;
+
+    MooseAlike2->import();
+
+    ::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(), 'Mouse::Meta::Class' );
+
+done_testing;