improvement the compatibility with Moose.
[gitmo/Mouse.git] / t / 800_shikabased / 013-compatibility-get_method_list.t
diff --git a/t/800_shikabased/013-compatibility-get_method_list.t b/t/800_shikabased/013-compatibility-get_method_list.t
new file mode 100644 (file)
index 0000000..8e85b84
--- /dev/null
@@ -0,0 +1,37 @@
+use strict;
+use warnings;
+use Test::More;
+plan skip_all => "This test requires Moose" unless eval "require Moose; 1;";
+plan tests => 6;
+
+test($_) for qw/Moose Mouse/;
+exit;
+
+sub test {
+    my $class = shift;
+    eval <<"...";
+{
+    package ${class}Class;
+    use ${class};
+    sub foo { }
+    no ${class};
+}
+{
+    package ${class}ClassImm;
+    use ${class};
+    sub foo { }
+    no ${class};
+    __PACKAGE__->meta->make_immutable();
+}
+{
+    package ${class}Role;
+    use ${class}::Role;
+    sub bar { }
+}
+...
+    die $@ if $@;
+    is join(',', sort "${class}Class"->meta->get_method_list()),    'foo,meta';
+    is join(',', sort "${class}ClassImm"->meta->get_method_list()), 'foo,meta,new';
+    is join(',', sort "${class}Role"->meta->get_method_list()),     'bar';
+}
+