Commit | Line | Data |
ed606987 |
1 | use Test::More; |
6c6bc8c2 |
2 | use Test::Exception; |
3 | use strict; |
4 | use warnings; |
5 | use lib 't/lib'; |
6 | |
7 | use AccessorGroupsSubclass; |
8 | |
9 | { |
10 | my $warned = 0; |
11 | local $SIG{__WARN__} = sub { |
12 | $_[0] =~ /unwise/ ? $warned++ : warn(@_) |
13 | }; |
14 | |
15 | for (qw/DESTROY AUTOLOAD CLONE/) { |
16 | AccessorGroupsSubclass->mk_group_accessors(warnings => $_); |
17 | } |
18 | |
19 | is($warned, 3, 'Correct amount of unise warnings'); |
20 | } |
21 | |
ed606987 |
22 | if (eval { require Sub::Name } ) { |
6c6bc8c2 |
23 | my $warned = 0; |
24 | local $SIG{__WARN__} = sub { |
25 | $_[0] =~ /Installing illegal accessor/ ? $warned++ : warn(@_) |
26 | }; |
27 | |
28 | for (qw/666_one 666_two/) { |
29 | no warnings qw/once/; |
30 | no strict 'refs'; |
31 | |
32 | local $ENV{CAG_ILLEGAL_ACCESSOR_NAME_OK} = 1; |
33 | AccessorGroupsSubclass->mk_group_accessors(warnings => $_); |
34 | } |
35 | |
36 | is($warned, 1, 'Correct amount of illegal installation warnings'); |
37 | }; |
38 | |
39 | throws_ok { AccessorGroupsSubclass->mk_group_accessors(simple => '2wrvwrv;') } |
40 | qr/Illegal accessor name/; |
41 | |
42 | throws_ok { |
43 | local $ENV{CAG_ILLEGAL_ACCESSOR_NAME_OK} = 1; |
44 | AccessorGroupsSubclass->mk_group_accessors(simple => "2wr\0vwrv;") |
45 | } qr/nulls should never appear/; |
ed606987 |
46 | |
47 | done_testing; |