Add another MOOSE_TEST_MD option, MooseX
[gitmo/Moose.git] / t / roles / anonymous_roles.t
index dc58861..5ce41ec 100644 (file)
@@ -4,6 +4,8 @@ use warnings;
 use Test::More;
 use Moose ();
 
+use Class::Load qw(is_class_loaded);
+
 my $role = Moose::Meta::Role->create_anon_role(
     attributes => {
         is_worn => {
@@ -30,7 +32,38 @@ ok(!$visored->is_worn, "method was consumed");
 like($role->name, qr/^Moose::Meta::Role::__ANON__::SERIAL::\d+$/, "");
 ok($role->is_anon_role, "the role knows it's anonymous");
 
-ok(Class::MOP::is_class_loaded(Moose::Meta::Role->create_anon_role->name), "creating an anonymous role satisifes is_class_loaded");
+ok(is_class_loaded(Moose::Meta::Role->create_anon_role->name), "creating an anonymous role satisifes is_class_loaded");
 ok(Class::MOP::class_of(Moose::Meta::Role->create_anon_role->name), "creating an anonymous role satisifes class_of");
 
+{
+    my $role;
+    {
+        my $meta = Moose::Meta::Role->create_anon_role(
+            methods => {
+                foo => sub { 'FOO' },
+            },
+        );
+
+        $role = $meta->name;
+        can_ok($role, 'foo');
+    }
+    ok(!$role->can('foo'));
+}
+
+{
+    my $role;
+    {
+        my $meta = Moose::Meta::Role->create_anon_role(
+            methods => {
+                foo => sub { 'FOO' },
+            },
+        );
+
+        $role = $meta->name;
+        can_ok($role, 'foo');
+        Class::MOP::remove_metaclass_by_name($role);
+    }
+    ok(!$role->can('foo'));
+}
+
 done_testing;