change role-to-role application to allow method shadowing
[gitmo/Moose.git] / t / roles / methods.t
CommitLineData
b55eada3 1use strict;
2use warnings;
3
4use Test::More;
5use Moose::Role ();
6
7my $test1 = Moose::Meta::Role->create_anon_role;
8$test1->add_method( 'foo1', sub { } );
9
10ok( $test1->has_method('foo1'), 'anon role has a foo1 method' );
11
12my $t1_am = $test1->get_method('foo1')->associated_metaclass;
13
14ok( $t1_am, 'associated_metaclass is defined' );
15
16isa_ok(
17 $t1_am, 'Moose::Meta::Role',
18 'associated_metaclass is correct class'
19);
20
21like( $t1_am->name(), qr/::__ANON__::/,
22 'associated_metaclass->name looks like an anonymous class' );
23
24{
25 package Test2;
26
27 use Moose::Role;
28
29 sub foo2 { }
30}
31
32ok( Test2->meta->has_method('foo2'), 'Test2 role has a foo2 method' );
33
34my $t2_am = Test2->meta->get_method('foo2')->associated_metaclass;
35
36ok( $t2_am, 'associated_metaclass is defined' );
37
38isa_ok(
39 $t2_am, 'Moose::Meta::Role',
40 'associated_metaclass is correct class'
41);
42
43is( $t2_am->name(), 'Test2',
44 'associated_metaclass->name is Test2' );
45
46done_testing;