trAvis - MANAGER
Edit File: 007_apply_roles.t
use strict; # This is automatically generated by author/import-moose-test.pl. # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! use t::lib::MooseCompat; use warnings; use Test::More; use Mouse::Util qw( apply_all_roles ); { package Role::Foo; use Mouse::Role; } { package Role::Bar; use Mouse::Role; } { package Role::Baz; use Mouse::Role; } { package Class::A; use Mouse; } { package Class::B; use Mouse; } { package Class::C; use Mouse; } { package Class::D; use Mouse; } { package Class::E; use Mouse; } 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;