Add a few more tests for ->associated_metaclass on methods
[gitmo/Moose.git] / t / 010_basics / 018_methods.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 6;
7
8
9 my $test1 = Moose::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, 'Moose::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
27     package Test2;
28
29     use Moose;
30
31     sub foo2 { }
32 }
33
34 my $t2    = Test2->new;
35 my $t2_am = $t2->meta->get_method('foo2')->associated_metaclass;
36
37 ok( $t2_am, 'associated_metaclass is defined' );
38
39 isa_ok(
40     $t2_am, 'Moose::Meta::Class',
41     'associated_metaclass is correct class'
42 );
43
44 is( $t2_am->name(), 'Test2',
45     'associated_metaclass->name is Test2' );