4 use Test::More tests => 21;
27 accessor => 'rw_attr',
28 reader => 'read_attr',
29 writer => 'write_attr',
33 ok(!Class->can('x'), "No accessor is injected if 'is' has no value");
34 can_ok('Class', 'y', 'z');
36 has_attribute_ok 'Class', 'x';
37 has_attribute_ok 'Class', 'y';
38 has_attribute_ok 'Class', 'z';
40 my $object = Class->new;
42 ok(!$object->can('x'), "No accessor is injected if 'is' has no value");
43 can_ok($object, 'y', 'z');
45 is($object->y, undef);
49 } qr/Cannot assign a value to a read-only accessor/;
51 is($object->y, undef);
53 is($object->z, undef);
54 is($object->z(10), 10);
57 can_ok($object, qw(rw_attr read_attr write_attr));
58 $object->write_attr(42);
59 is $object->rw_attr, 42;
60 is $object->read_attr, 42;
61 $object->rw_attr(100);
62 is $object->rw_attr, 100;
63 is $object->read_attr, 100;
72 Class->write_attr(42);