convert all uses of Test::Exception to Test::Fatal.
[gitmo/MooseX-ClassAttribute.git] / t / 07-parameterized-role.t
index 393b802..df6780d 100644 (file)
@@ -1,25 +1,46 @@
 use strict;
 use warnings;
+
 use Test::More;
+use Test::Fatal;
 
-BEGIN {
-    unless (eval { require MooseX::Role::Parameterized }) {
-        plan skip_all => 'This test needs MooseX::Role::Parameterized';
-    }
-}
+use Test::Requires {
+    'MooseX::Role::Parameterized' => '0',
+};
+
+plan skip_all =>
+    'This test will not pass without changes to MooseX::Role::Parmeterized';
 
-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
 
-ok((not $@), 'used MooseX::ClassAttribute in MooseX::Role::Parameterized role');
-diag $@ if $@;
+    with 'Role' => { foo => 'foo' };
+}
+
+my $instance = Class->new();
+isa_ok( $instance, 'Class' );
+
+ok ! exception {
+    $instance->foo('bar');
+    is( $instance->foo(), 'bar' );
+},
+'used class attribute from parameterized role';
 
-done_testing;
+done_testing();