Commit | Line | Data |
3d25b8ec |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use Test::More tests => 10; |
5 | use Test::Exception; |
6 | |
7 | use Class::MOP; |
8 | |
9 | { |
10 | package Base; |
11 | sub m1 { 1 } |
12 | sub m2 { 2 } |
13 | sub m3 { 3 } |
14 | sub m4 { 4 } |
15 | sub m5 { 5 } |
16 | |
17 | package Derived; |
18 | use parent -norequire => qw(Base); |
19 | |
20 | sub m1; |
21 | sub m2 (); |
22 | sub m3 :method; |
23 | sub m4; m4() if 0; |
24 | sub m5; our $m5;; |
25 | } |
26 | |
27 | my $meta = Class::MOP::Class->initialize('Derived'); |
28 | my %methods = map { $_ => $meta->find_method_by_name($_) } 'm1' .. 'm5'; |
29 | |
30 | while (my ($name, $meta_method) = each %methods) { |
31 | is $meta_method->fully_qualified_name, "Derived::${name}"; |
32 | throws_ok { $meta_method->execute } qr/Undefined subroutine .* called at/; |
33 | } |