X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=xt%2Fmoose-does-moo-role.t;h=07739da940bf28a4f3f8cb00b90948dd82a4deaa;hb=c944f84cc09cd1f9e644e8a08e62c27412dbe892;hp=2e84eb65b62b46807d761aa2bfcde33538ff4848;hpb=bb8566e487a84a2fb35269f77ea01e96acf04d9d;p=gitmo%2FMoo.git diff --git a/xt/moose-does-moo-role.t b/xt/moose-does-moo-role.t index 2e84eb6..07739da 100644 --- a/xt/moose-does-moo-role.t +++ b/xt/moose-does-moo-role.t @@ -1,21 +1,29 @@ 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; @@ -37,11 +45,16 @@ use Moo::HandleMoose; 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); } }