diff options
Diffstat (limited to 't/roles/overloading_combine_to_instance.t')
-rw-r--r-- | t/roles/overloading_combine_to_instance.t | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/t/roles/overloading_combine_to_instance.t b/t/roles/overloading_combine_to_instance.t new file mode 100644 index 0000000..73c4ebf --- /dev/null +++ b/t/roles/overloading_combine_to_instance.t @@ -0,0 +1,39 @@ +use strict; +use warnings; + +use Test::More 0.88; +use Test::Warnings; +use overload (); + +use lib 't/lib'; + +use OverloadingTests; +use Overloading::RoleWithOverloads; +use Overloading::RoleWithoutOverloads; + +{ + package MyClass; + use Moose; +} + +my $object = MyClass->new; + +Moose::Meta::Role->combine( + [ 'Overloading::RoleWithOverloads' => undef ], + [ 'Overloading::RoleWithoutOverloads' => undef ], +)->apply($object); + +OverloadingTests::test_overloading_for_package($_) + for 'Overloading::RoleWithOverloads', ref $object; + +OverloadingTests::test_no_overloading_for_package( + 'Overloading::RoleWithoutOverloads'); + +$object->message('foo'); + +OverloadingTests::test_overloading_for_object( + $object, + 'object with Overloading::RoleWithOverloads and Overloading::RoleWithoutOverloads combined and applied to instance' +); + +done_testing(); |