d0a5dd84b0651db75131e1b5c99fa143d32e774c
[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 Class::Inspector;
7 use AccessorGroupsComp;
8
9 is(AccessorGroupsComp->result_class, undef);
10
11 ## croak on set where class can't be loaded and it's a physical class
12 my $dying = AccessorGroupsComp->new;
13 throws_ok {
14     $dying->result_class('NotReallyAClass');
15 } qr/Could not load result_class 'NotReallyAClass'/;
16 is($dying->result_class, undef);
17
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
24 ok(!Class::Inspector->loaded('BaseInheritedGroups'));
25 AccessorGroupsComp->result_class('BaseInheritedGroups');
26 ok(Class::Inspector->loaded('BaseInheritedGroups'));
27 is(AccessorGroupsComp->result_class, 'BaseInheritedGroups');
28
29 ## unset it
30 AccessorGroupsComp->result_class(undef);
31 is(AccessorGroupsComp->result_class, undef);