Add role_for_combination to fix prole-role combination
Shawn M Moore [Sun, 10 May 2009 03:36:37 +0000 (23:36 -0400)]
lib/MooseX/Role/Parameterized/Meta/Role/Parameterizable.pm
t/150-composite-role-application.t

index b3d3d43..59529ee 100644 (file)
@@ -83,6 +83,15 @@ sub generate_role {
     return $role;
 }
 
+sub role_for_combination {
+    my $self = shift;
+    my $parameters = shift;
+
+    return $self->generate_role(
+        parameters => $parameters,
+    );
+}
+
 sub apply {
     my $self     = shift;
     my $consumer = shift;
index 1e2e203..1e0a0b0 100644 (file)
@@ -49,11 +49,8 @@ do {
          MyCompositeRoleB => { accessor  => 'bar' };
 };
 
-TODO: {
-    local $TODO = "role-role application for parameterized roles doesn't work yet";
-    ok(MyDoubleConsumer->can('foo'), 'first role in composite applied successfully');
-    ok(MyDoubleConsumer->can('bar'), 'second role in composite applied successfully');
-};
+ok(MyDoubleConsumer->can('foo'), 'first role in composite applied successfully');
+ok(MyDoubleConsumer->can('bar'), 'second role in composite applied successfully');
 
 do {
     package MyExtendingRole;
@@ -82,12 +79,9 @@ do {
          MyExtendingRole  => { foo => 23 };
 };
 
-TODO: {
-    local $TODO = "role-role application for parameterized roles doesn't work yet";
-    ok(MyExtendedConsumer->can('baz'), 'role composed directly applied successfully');
-    ok(MyExtendedConsumer->can('bar'), 'role composed through other role applied successfully');
-    is(eval { MyExtendedConsumer->new->foo }, 23, 'role composing other role applied successfully');
-};;
+ok(MyExtendedConsumer->can('baz'), 'role composed directly applied successfully');
+ok(MyExtendedConsumer->can('bar'), 'role composed through other role applied successfully');
+is(eval { MyExtendedConsumer->new->foo }, 23, 'role composing other role applied successfully');
 
 do {
     package MyRoleProxy;
@@ -117,9 +111,6 @@ do {
     );
 };
 
-TODO: {
-    local $TODO = "role-role application for parameterized roles doesn't work yet";
-    ok(MyProxyConsumer->can('baz'), 'proxied role got applied successfully');
-    ok(MyProxyConsumer->can('qux'), 'other role besides proxied one got applied successfully');
-};
+ok(MyProxyConsumer->can('baz'), 'proxied role got applied successfully');
+ok(MyProxyConsumer->can('qux'), 'other role besides proxied one got applied successfully');