Test fixes and improvements
[gitmo/MooseX-Role-Parameterized.git] / t / 002-role-block.t
index f1d633e..e417880 100644 (file)
@@ -1,16 +1,16 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 2;
+use Test::More tests => 5;
 use Test::Exception;
 
 my ($parameters, %args);
 
 do {
-    package MyRole;
+    package MyPerson;
     use MooseX::Role::Parameterized;
 
-    parameter length => (
+    parameter default_age => (
         is       => 'rw',
         isa      => 'Int',
         required => 1,
@@ -18,16 +18,25 @@ do {
 
     role {
         ($parameters, %args) = @_;
+
+        has age => (
+            is      => 'ro',
+            default => $parameters->default_age,
+        );
     };
 };
 
-ok(MyRole->meta->has_role_generator, "MyRole has a role generator");
+ok(MyPerson->meta->has_role_generator, "MyPerson has a role generator");
 
-my $role = MyRole->meta->generate_role(
-    length => 7,
+my $role = MyPerson->meta->generate_role(
+    default_age => 7,
 );
 
 isa_ok($role, 'Moose::Meta::Role', 'generate_role created a role');
 
-is($parameters->length, 7);
+is($parameters->default_age, 7);
+is($args{operating_on}, $role, "we pass in the role metaclass that we're operating on");
+
+my $age_attr = $role->get_attribute('age');
+is($age_attr->{default}, 7, "role's age attribute has the right default");