File: inherited.t

package info (click to toggle)
libmoosex-methodattributes-perl 0.32-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 496 kB
  • sloc: perl: 648; makefile: 2
file content (52 lines) | stat: -rw-r--r-- 1,158 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
use strict;
use warnings;
use Test::More tests => 9;

use lib 't/lib';

use Moose::Util qw/does_role/;

BEGIN { use_ok 'SubClass'; }
BEGIN { use_ok 'SubClassUseBaseAndUseMoose'; }

my $meta = SubClass->meta;
my $meta2 = SubClassUseBaseAndUseMoose->meta;

ok( does_role(
        BaseClass->meta->method_metaclass
        => 'MooseX::MethodAttributes::Role::Meta::Method'
    ) => 'BaseClass does method meta role'
);
ok( does_role(
        $meta->method_metaclass
        => 'MooseX::MethodAttributes::Role::Meta::Method'
    ) => 'SubClass does method meta role'
);
ok( does_role(
        $meta2->method_metaclass
        => 'MooseX::MethodAttributes::Role::Meta::Method'
    ) => 'SubClassUseBaseAndUseMoose does method meta role'
);

is_deeply(
    $meta2->get_method('bar')->attributes,
    ['Bar'],
);

is_deeply(
    $meta->get_method('bar')->attributes,
    ['Bar'],
);

is_deeply(
    $meta->find_method_by_name('foo')->attributes,
    ['Foo'],
);

is_deeply(
    [map { [$_->name => $_->attributes] } SubClass->meta->get_all_methods_with_attributes],
    [['affe', ['Birne']],
     ['foo', ['Foo']],
     ['moo', ['Moo']],
     ['bar', ['Bar']]],
);