X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F400_mouse_util%2F007_apply_roles.t;fp=t%2F400_mouse_util%2F007_apply_roles.t;h=a6b33b7b6652ae3df63796dcb31f56f40310f235;hb=43fb75d66ac7f19f2e8f9dc5baf798c62965b097;hp=0000000000000000000000000000000000000000;hpb=16504b1548c2c3b2570a46b1864287f50d49faf2;p=gitmo%2FMouse.git diff --git a/t/400_mouse_util/007_apply_roles.t b/t/400_mouse_util/007_apply_roles.t new file mode 100644 index 0000000..a6b33b7 --- /dev/null +++ b/t/400_mouse_util/007_apply_roles.t @@ -0,0 +1,74 @@ +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;