1
use Test::More tests => 48;
7
my $class = AccessorGroupsRO->new;
12
local $SIG{__WARN__} = sub {
13
if (shift =~ /DESTROY/i) {
18
$class->mk_group_ro_accessors('warnings', 'DESTROY');
22
# restore non-accessorized DESTROY
24
*AccessorGroupsRO::DESTROY = sub {};
27
foreach (qw/singlefield multiple1 multiple2/) {
29
my $alias = "_${name}_accessor";
31
can_ok($class, $name, $alias);
33
is($class->$name, undef);
34
is($class->$alias, undef);
37
$class->{$name} = 'a';
38
is($class->$name, 'a');
40
# alias gets same as name
41
is($class->$alias, 'a');
43
# die on set via name/alias
47
ok($@ =~ /cannot alter/);
52
ok($@ =~ /cannot alter/);
54
# value should be unchanged
55
is($class->$name, 'a');
56
is($class->$alias, 'a');
59
foreach (qw/lr1 lr2/) {
60
my $name = "$_".'name';
61
my $alias = "_${name}_accessor";
62
my $field = "$_".'field';
64
can_ok($class, $name, $alias);
65
ok(!$class->can($field));
67
is($class->$name, undef);
68
is($class->$alias, undef);
71
$class->{$field} = 'c';
72
is($class->$name, 'c');
74
# alias gets same as name
75
is($class->$alias, 'c');
77
# die on set via name/alias
81
ok($@ =~ /cannot alter/);
86
ok($@ =~ /cannot alter/);
88
# value should be unchanged
89
is($class->$name, 'c');
90
is($class->$alias, 'c');