diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-06 17:50:16 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2015-06-06 17:50:16 +0000 |
commit | 5ac2026f7eed78958d69d051e7a8e993dcf51205 (patch) | |
tree | 298c3d2f08bdfe5689998b11892d72a897985be1 /t/roles/overloading_to_role.t | |
download | Moose-tarball-5ac2026f7eed78958d69d051e7a8e993dcf51205.tar.gz |
Moose-2.1405HEADMoose-2.1405master
Diffstat (limited to 't/roles/overloading_to_role.t')
-rw-r--r-- | t/roles/overloading_to_role.t | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/t/roles/overloading_to_role.t b/t/roles/overloading_to_role.t new file mode 100644 index 0000000..f0fa326 --- /dev/null +++ b/t/roles/overloading_to_role.t @@ -0,0 +1,58 @@ +use strict; +use warnings; + +use Test::More 0.88; +use Test::Warnings; +use overload (); + +use lib 't/lib'; + +use OverloadingTests; +use Overloading::ClassConsumesRoleConsumesOverloads; + +for my $role ( + qw( Overloading::RoleWithOverloads Overloading::RoleConsumesOverloads )) { + + ok( + Overloading::ClassConsumesRoleConsumesOverloads->DOES($role), + "Overloading::ClassConsumesRoleConsumesOverloads does $role role" + ); +} + +OverloadingTests::test_overloading_for_package($_) for qw( + Overloading::RoleWithOverloads + Overloading::RoleConsumesOverloads + Overloading::ClassConsumesRoleConsumesOverloads +); + +OverloadingTests::test_overloading_for_object( + 'Overloading::ClassConsumesRoleConsumesOverloads'); + +# These tests failed on 5.18+ in MXRWO - the key issue was the lack of a +# "fallback" key being passed to overload.pm +{ + package MyRole1; + use Moose::Role; + use overload q{""} => '_stringify'; + sub _stringify {__PACKAGE__} +} + +{ + package MyRole2; + use Moose::Role; + with 'MyRole1'; +} + +{ + package Class1; + use Moose; + with 'MyRole2'; +} + +is( + Class1->new . q{}, + 'MyRole1', + 'stringification overloading is passed through all roles' +); + +done_testing(); |