Commit | Line | Data |
874177a3 |
1 | use Test::More tests => 8; |
18026fd5 |
2 | use Test::Exception; |
331e820d |
3 | use strict; |
4 | use warnings; |
5 | use lib 't/lib'; |
6 | use Class::Inspector; |
18026fd5 |
7 | use AccessorGroupsComp; |
331e820d |
8 | |
18026fd5 |
9 | is(AccessorGroupsComp->result_class, undef); |
331e820d |
10 | |
874177a3 |
11 | ## croak on set where class can't be loaded and it's a physical class |
18026fd5 |
12 | my $dying = AccessorGroupsComp->new; |
13 | throws_ok { |
874177a3 |
14 | $dying->result_class('NotReallyAClass'); |
18026fd5 |
15 | } qr/Could not load result_class 'NotReallyAClass'/; |
331e820d |
16 | is($dying->result_class, undef); |
17 | |
874177a3 |
18 | |
19 | ## don't croak when the class isn't available but not loaded for people |
20 | ## who create class/packages on the fly |
21 | $dying->result_class('JunkiesNeverInstalled'); |
22 | is($dying->result_class, 'JunkiesNeverInstalled'); |
23 | |
331e820d |
24 | ok(!Class::Inspector->loaded('BaseInheritedGroups')); |
18026fd5 |
25 | AccessorGroupsComp->result_class('BaseInheritedGroups'); |
331e820d |
26 | ok(Class::Inspector->loaded('BaseInheritedGroups')); |
18026fd5 |
27 | is(AccessorGroupsComp->result_class, 'BaseInheritedGroups'); |
331e820d |
28 | |
29 | ## unset it |
18026fd5 |
30 | AccessorGroupsComp->result_class(undef); |
31 | is(AccessorGroupsComp->result_class, undef); |