added test case for compatibility
Tokuhiro Matsuno [Sun, 7 Dec 2008 11:58:22 +0000 (11:58 +0000)]
t/800_shikabased/012-role-compatibility.t [new file with mode: 0644]

diff --git a/t/800_shikabased/012-role-compatibility.t b/t/800_shikabased/012-role-compatibility.t
new file mode 100644 (file)
index 0000000..15584aa
--- /dev/null
@@ -0,0 +1,38 @@
+use strict;
+use warnings;
+use Test::More;
+plan skip_all => "This test requires Moose" unless eval "require Moose; 1;";
+plan tests => 4;
+
+test('Moose');
+test('Mouse');
+exit;
+
+sub test {
+    my $class = shift;
+    eval <<"...";
+{
+    package ${class}Parent;
+    use ${class};
+    sub parent_method { 'ok' }
+}
+
+{
+    package ${class}ChildRole;
+    use ${class}::Role;
+    use base qw/${class}Parent/;
+    sub conflict { "role's" }
+}
+
+{
+    package ${class}Class;
+    use ${class};
+    with '${class}ChildRole';
+    sub conflict { "class's" }
+}
+...
+    die $@ if $@;
+    ok !"${class}Class"->can('parent_method');
+    is "${class}Class"->conflict(), "class's";
+}
+