Merge branch 'stable'
[gitmo/Class-MOP.git] / t / 305_RT_41255.t
index 1dd1049..0c87b9d 100644 (file)
@@ -1,13 +1,11 @@
-#!/usr/bin/perl
-
 use strict;
-use Test::More tests => 10;
-use Test::Exception;
+use Test::More;
+use Test::Fatal;
 
 use Class::MOP;
 
 {
-    package Base;
+    package BaseClass;
     sub m1 { 1 }
     sub m2 { 2 }
     sub m3 { 3 }
@@ -15,7 +13,7 @@ use Class::MOP;
     sub m5 { 5 }
 
     package Derived;
-    use parent -norequire => qw(Base);
+    use base qw(BaseClass);
 
     sub m1;
     sub m2 ();
@@ -29,5 +27,25 @@ my %methods = map { $_ => $meta->find_method_by_name($_) } 'm1' .. 'm5';
 
 while (my ($name, $meta_method) = each %methods) {
     is $meta_method->fully_qualified_name, "Derived::${name}";
-    throws_ok { $meta_method->execute } qr/Undefined subroutine .* called at/;
+    like( exception { $meta_method->execute }, qr/Undefined subroutine .* called at/ );
+}
+
+{
+    package Derived;
+    eval <<'EOC';
+
+    sub m1         { 'affe'  }
+    sub m2 ()      { 'apan'  }
+    sub m3 :method { 'tiger' }
+    sub m4         { 'birne' }
+    sub m5         { 'apfel' }
+
+EOC
+}
+
+while (my ($name, $meta_method) = each %methods) {
+    is $meta_method->fully_qualified_name, "Derived::${name}";
+    is( exception { $meta_method->execute }, undef );
 }
+
+done_testing;