4 use Test::More tests => 21;
28 accessor => 'rw_attr',
29 reader => 'read_attr',
30 writer => 'write_attr',
34 ok(!Class->can('x'), "No accessor is injected if 'is' has no value");
35 can_ok('Class', 'y', 'z');
37 has_attribute_ok 'Class', 'x';
38 has_attribute_ok 'Class', 'y';
39 has_attribute_ok 'Class', 'z';
41 my $object = Class->new;
43 ok(!$object->can('x'), "No accessor is injected if 'is' has no value");
44 can_ok($object, 'y', 'z');
46 is($object->y, undef);
50 } qr/Cannot assign a value to a read-only accessor/;
52 is($object->y, undef);
54 is($object->z, undef);
55 is($object->z(10), 10);
58 can_ok($object, qw(rw_attr read_attr write_attr));
59 $object->write_attr(42);
60 is $object->rw_attr, 42;
61 is $object->read_attr, 42;
62 $object->rw_attr(100);
63 is $object->rw_attr, 100;
64 is $object->read_attr, 100;
73 Class->write_attr(42);