-#!/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 }
sub m5 { 5 }
package Derived;
- use parent -norequire => qw(Base);
+ use base qw(BaseClass);
sub m1;
sub m2 ();
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;