Commit | Line | Data |
60ad2cb7 |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use Test::More tests => 6; |
7 | |
8 | |
9 | my $test1 = Mouse::Meta::Class->create_anon_class; |
10 | $test1->add_method( 'foo1', sub { } ); |
11 | |
12 | my $t1 = $test1->new_object; |
13 | my $t1_am = $t1->meta->get_method('foo1')->associated_metaclass; |
14 | |
15 | ok( $t1_am, 'associated_metaclass is defined' ); |
16 | |
17 | isa_ok( |
18 | $t1_am, 'Mouse::Meta::Class', |
19 | 'associated_metaclass is correct class' |
20 | ); |
21 | |
22 | like( $t1_am->name(), qr/::__ANON__::/, |
23 | 'associated_metaclass->name looks like an anonymous class' ); |
24 | |
25 | { |
26 | package Test2; |
27 | |
28 | use Mouse; |
29 | |
30 | sub foo2 { } |
31 | } |
32 | |
33 | my $t2 = Test2->new; |
34 | my $t2_am = $t2->meta->get_method('foo2')->associated_metaclass; |
35 | |
36 | ok( $t2_am, 'associated_metaclass is defined' ); |
37 | |
38 | isa_ok( |
39 | $t2_am, 'Mouse::Meta::Class', |
40 | 'associated_metaclass is correct class' |
41 | ); |
42 | |
43 | is( $t2_am->name(), 'Test2', |
44 | 'associated_metaclass->name is Test2' ); |