rewrite parameterized role test to not use string eval
Rafael Kitover [Thu, 5 Aug 2010 03:48:27 +0000 (23:48 -0400)]
t/07-parameterized-role.t

index 393b802..656f8fc 100644 (file)
@@ -8,18 +8,29 @@ BEGIN {
     }
 }
 
-eval <<'EOF';
+{
     package Role;
     use MooseX::Role::Parameterized;
     use MooseX::ClassAttribute;
-    role {};
+    
+    parameter foo => (is => 'rw');
+
+    role {
+        my $p = shift;
+
+        class_has $p => (is => 'rw');
+    };
 
     package Class;
     use Moose;
-    with 'Role';
-EOF
+    with 'Role' => { foo => 'foo' };
+}
+
+ok((my $instance = Class->new), 'instance');
 
-ok((not $@), 'used MooseX::ClassAttribute in MooseX::Role::Parameterized role');
-diag $@ if $@;
+lives_and {
+    $instance->foo('bar');
+    is $instance->foo, 'bar';
+} 'used class attribute from parameterized role';
 
 done_testing;