Move non-useful, Moose-specific methods into t/lib/Test/Mouse.pm
[gitmo/Mouse.git] / t / 007-attributes.t
index 4316e25..ae538e6 100644 (file)
@@ -1,14 +1,19 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 10;
+use Test::More tests => 18;
 use Test::Exception;
 
+use lib 't/lib';
+use Test::Mouse;
+
 do {
     package Class;
     use Mouse;
 
-    has 'x';
+    has 'x' => (
+        is => 'bare',
+    );
 
     has 'y' => (
         is => 'ro',
@@ -17,11 +22,21 @@ do {
     has 'z' => (
         is => 'rw',
     );
+
+    has 'attr' => (
+        accessor => 'rw_attr',
+        reader   => 'read_attr',
+        writer   => 'write_attr',
+    );
 };
 
 ok(!Class->can('x'), "No accessor is injected if 'is' has no value");
 can_ok('Class', 'y', 'z');
 
+has_attribute_ok 'Class', 'x';
+has_attribute_ok 'Class', 'y';
+has_attribute_ok 'Class', 'z';
+
 my $object = Class->new;
 
 ok(!$object->can('x'), "No accessor is injected if 'is' has no value");
@@ -39,3 +54,11 @@ is($object->z, undef);
 is($object->z(10), 10);
 is($object->z, 10);
 
+can_ok($object, qw(rw_attr read_attr write_attr));
+$object->write_attr(42);
+is $object->rw_attr, 42;
+is $object->read_attr, 42;
+$object->rw_attr(100);
+is $object->rw_attr, 100;
+is $object->read_attr, 100;
+