1 use Test::More no_plan;
7 my $class = AccessorGroupsRO->new;
12 local $SIG{__WARN__} = sub {
13 if (shift =~ /DESTROY/i) {
18 $class->mk_group_ro_accessors('warnings', 'DESTROY');
23 foreach (qw/singlefield multiple1 multiple2/) {
25 my $alias = "_${name}_accessor";
27 can_ok($class, $name, $alias);
29 is($class->$name, undef);
30 is($class->$alias, undef);
33 $class->{$name} = 'a';
34 is($class->$name, 'a');
36 # alias gets same as name
37 is($class->$alias, 'a');
39 # die on set via name/alias
43 ok($@ =~ /cannot alter/);
48 ok($@ =~ /cannot alter/);
50 # value should be unchanged
51 is($class->$name, 'a');
52 is($class->$alias, 'a');
55 foreach (qw/lr1 lr2/) {
56 my $name = "$_".'name';
57 my $alias = "_${name}_accessor";
58 my $field = "$_".'field';
60 can_ok($class, $name, $alias);
61 ok(!$class->can($field));
63 is($class->$name, undef);
64 is($class->$alias, undef);
67 $class->{$field} = 'c';
68 is($class->$name, 'c');
70 # alias gets same as name
71 is($class->$alias, 'c');
73 # die on set via name/alias
77 ok($@ =~ /cannot alter/);
82 ok($@ =~ /cannot alter/);
84 # value should be unchanged
85 is($class->$name, 'c');
86 is($class->$alias, 'c');