X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faccessor-generator-extension.t;h=d89463993f2b4da20425bb286e54a7999861ce6d;hb=087c79b5dee4047d9b96a52e52e55c2105e9c4c0;hp=3164bf642e4e7861bb78f60c008c7f8743610e88;hpb=873df57040580aff36452de31e310003f73390fc;p=gitmo%2FMoo.git diff --git a/t/accessor-generator-extension.t b/t/accessor-generator-extension.t index 3164bf6..d894639 100644 --- a/t/accessor-generator-extension.t +++ b/t/accessor-generator-extension.t @@ -42,19 +42,21 @@ BEGIN { } sub default_construction_string { '[]' } + + sub MooX::ArrayRef::import { + Moo::Role->apply_roles_to_object( + Moo->_accessor_maker_for(scalar caller), + 'Method::Generate::Accessor::Role::ArrayRefInstance' + ); + } + $INC{"MooX/ArrayRef.pm"} = 1; } { package ArrayTest1; use Moo; - - BEGIN { - Moo::Role->apply_roles_to_object( - Moo->_accessor_maker_for(__PACKAGE__), - 'Method::Generate::Accessor::Role::ArrayRefInstance' - ) - } + use MooX::ArrayRef; has one => (is => 'ro'); has two => (is => 'ro'); @@ -79,4 +81,24 @@ $o = ArrayTest2->new(one => 1, two => 2, three => 3, four => 4); is_deeply([ @$o ], [ 1, 2, 3, 4 ], 'Subclass object ok'); +{ + package ArrayTestRole; + + use Moo::Role; + + has four => (is => 'ro'); + + package ArrayTest3; + + use Moo; + + extends 'ArrayTest1'; + + with 'ArrayTestRole'; +} + +$o = ArrayTest3->new(one => 1, two => 2, three => 3, four => 4); + +is_deeply([ @$o ], [ 1, 2, 3, 4 ], 'Subclass object w/role'); + done_testing;