File: metaroles.t

package info (click to toggle)
libtest-moose-more-perl 0.050-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 512 kB
  • sloc: perl: 755; makefile: 2
file content (41 lines) | stat: -rw-r--r-- 1,310 bytes parent folder | download | duplicates (2)
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
use strict;
use warnings;

{ package MetaRole::attribute; use Moose::Role; }
{ package MetaRole::nope;      use Moose::Role; }
{ package TestRole;            use Moose::Role; }

use Test::Builder::Tester;
use Test::More;
use Test::Moose::More;
use TAP::SimpleOutput 0.007 'counters';

use Moose::Util::MetaRole;

Moose::Util::MetaRole::apply_metaroles for => 'TestRole',
    role_metaroles  => { attribute => [ 'MetaRole::attribute' ] },
    ;

subtest 'Sanity, simple run' => sub {
    validate_role TestRole => (
        role_metaroles    => { attribute => [ 'MetaRole::attribute' ] },
        no_role_metaroles => { attribute => [ 'MetaRole::nope'      ] },
    );
};

{
    my ($_ok, $_nok) = counters;
    test_out $_ok->(q{TestRole has a metaclass});
    test_out $_ok->(q{TestRole is a Moose role});
    test_out $_ok->(q{TestRole's attribute metaclass Moose::Meta::Class::__ANON__::SERIAL::1 does MetaRole::attribute});
    test_out $_ok->(q{TestRole's attribute metaclass Moose::Meta::Class::__ANON__::SERIAL::1 does not do MetaRole::nope});
    validate_role 'TestRole' => (
        role_metaroles    => { attribute => [ 'MetaRole::attribute' ] },
        no_role_metaroles => { attribute => [ 'MetaRole::nope'      ] },
    );
    test_test '{,no_}role_metaroles option honored';

}


done_testing;