Switch all module loading to Module::Runtime
[p5sagit/Class-Accessor-Grouped.git] / t / component.t
1 use Test::More tests => 8;
2 use Test::Exception;
3 use strict;
4 use warnings;
5 use lib 't/lib';
6 use AccessorGroupsComp;
7
8 is(AccessorGroupsComp->result_class, undef);
9
10 ## croak on set where class can't be loaded and it's a physical class
11 my $dying = AccessorGroupsComp->new;
12 throws_ok {
13   $dying->result_class('NotReallyAClass');
14 } qr/Could not load result_class 'NotReallyAClass'/;
15 is($dying->result_class, undef);
16
17
18 ## don't croak when the class isn't available but not loaded for people
19 ## who create class/packages on the fly
20 $dying->result_class('JunkiesNeverInstalled');
21 is($dying->result_class, 'JunkiesNeverInstalled');
22
23 ok(! $INC{'BaseInheritedGroups.pm'});
24 AccessorGroupsComp->result_class('BaseInheritedGroups');
25 ok($INC{'BaseInheritedGroups.pm'});
26 is(AccessorGroupsComp->result_class, 'BaseInheritedGroups');
27
28 ## unset it
29 AccessorGroupsComp->result_class(undef);
30 is(AccessorGroupsComp->result_class, undef);