test constructor after composing multiple roles
Graham Knop [Tue, 18 Jun 2013 23:29:30 +0000 (19:29 -0400)]
t/compose-roles.t

index 29a3342..53ec5bb 100644 (file)
@@ -28,4 +28,27 @@ foreach my $combo (
   is(ref($object), $combined, 'Object reblessed into correct class');
 }
 
+{
+  package RoleWithAttr;
+  use Moo::Role;
+
+  has attr1 => (is => 'rw');
+
+  package RoleWithAttr2;
+  use Moo::Role;
+
+  has attr2 => (is => 'rw');
+
+  package ClassWithAttr;
+  use Moo;
+
+  has attr3 => (is => 'rw');
+}
+
+Moo::Role->apply_roles_to_package('ClassWithAttr', 'RoleWithAttr', 'RoleWithAttr2');
+my $o = ClassWithAttr->new(attr1 => 1, attr2 => 2, attr3 => 3);
+is($o->attr1, 1, 'attribute from role works');
+is($o->attr2, 2, 'attribute from role 2 works');
+is($o->attr3, 3, 'attribute from base class works');
+
 done_testing;