make sure to clear the stash when anon classes are removed explicitly
[gitmo/Moose.git] / t / cmop / anon_class_removal.t
diff --git a/t/cmop/anon_class_removal.t b/t/cmop/anon_class_removal.t
new file mode 100644 (file)
index 0000000..cb03370
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Class::MOP;
+
+{
+    my $class;
+    {
+        my $meta = Class::MOP::Class->create_anon_class(
+            methods => {
+                foo => sub { 'FOO' },
+            },
+        );
+
+        $class = $meta->name;
+        can_ok($class, 'foo');
+        is($class->foo, 'FOO');
+    }
+    ok(!$class->can('foo'));
+}
+
+{
+    my $class;
+    {
+        my $meta = Class::MOP::Class->create_anon_class(
+            methods => {
+                foo => sub { 'FOO' },
+            },
+        );
+
+        $class = $meta->name;
+        can_ok($class, 'foo');
+        is($class->foo, 'FOO');
+        Class::MOP::remove_metaclass_by_name($class);
+    }
+    ok(!$class->can('foo'));
+}
+
+done_testing;