File: 024-named-anonymous.t

package info (click to toggle)
libmoosex-role-parameterized-perl 1.11-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 464 kB
  • sloc: perl: 439; makefile: 2
file content (49 lines) | stat: -rw-r--r-- 936 bytes parent folder | download | duplicates (4)
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
use strict;
use warnings;
use Test::More;

{
    package Test::Role;
    use MooseX::Role::Parameterized;

    parameter default_beer => (
        isa => "Str",
        is  => "ro",
        required => 1,
    );

    role {
        my $p = shift;

        has beer => (
            isa => "Str",
            is  => "ro",
            default => $p->default_beer,
        );
    };

    package Test::Class;
    use Moose;

    with 'Test::Role' => { default_beer => "O'Doul's" };

    package Test::Class2;
    use Moose;

    with 'Test::Role' => { default_beer => "Root" };

}

like(
    ($_->new->meta->calculate_all_roles)[0]->name,
    qr/\ATest::Role::__ANON__::SERIAL::[0-9]+\z/,
    "Right looking role name for $_",
) for qw( Test::Class Test::Class2 );

isnt(
    (Test::Class->new->meta->calculate_all_roles)[0]->name,
    (Test::Class2->new->meta->calculate_all_roles)[0]->name,
    'role names are unique'
);

done_testing;