use strictures 1;
use Test::More;
-use Test::Exception;
-
-use Moo::HandleMoose;
+use Test::Fatal;
{
+ package MooParentRole;
+ use Moo::Role;
+ sub parent_role_method { 1 };
+
package MooRole;
use Moo::Role;
+ with 'MooParentRole';
+ sub role_method { 1 };
package MooRoledMooClass;
use Moo;
with 'MooRole';
+ has 'some_attr' => (is => 'ro');
+
package MooRoledMooseClass;
use Moose;
with 'MooRole';
+ has 'some_attr' => (is => 'ro');
+
package MooseParent;
use Moose;
for my $parent (qw(MooseParent MooParent)) {
for my $child (qw(MooRoledMooClass MooRoledMooseClass)) {
- lives_ok {
- $parent->new(
+ is(exception {
+ my $o = $parent->new(
e => $child->new(),
);
- } "$parent instantiated with a $child delegate that does a MooRole";
+ ok( $o->e->does("MooParentRole"), "$child does parent MooRole" );
+ can_ok( $o->e, "role_method" );
+ can_ok( $o->e, "parent_role_method" );
+ ok($o->e->meta->has_method('role_method'), 'Moose knows about role_method');
+ ok($o->e->meta->has_method('parent_role_method'), 'Moose knows about parent_role_method');
+ }, undef);
}
}