Add debugging of undefer code reentrancy when a test environment is detected
[p5sagit/Class-Accessor-Grouped.git] / t / component.t
CommitLineData
874177a3 1use Test::More tests => 8;
18026fd5 2use Test::Exception;
331e820d 3use strict;
4use warnings;
5use lib 't/lib';
6use Class::Inspector;
18026fd5 7use AccessorGroupsComp;
331e820d 8
18026fd5 9is(AccessorGroupsComp->result_class, undef);
331e820d 10
874177a3 11## croak on set where class can't be loaded and it's a physical class
18026fd5 12my $dying = AccessorGroupsComp->new;
13throws_ok {
874177a3 14 $dying->result_class('NotReallyAClass');
18026fd5 15} qr/Could not load result_class 'NotReallyAClass'/;
331e820d 16is($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');
22is($dying->result_class, 'JunkiesNeverInstalled');
23
331e820d 24ok(!Class::Inspector->loaded('BaseInheritedGroups'));
18026fd5 25AccessorGroupsComp->result_class('BaseInheritedGroups');
331e820d 26ok(Class::Inspector->loaded('BaseInheritedGroups'));
18026fd5 27is(AccessorGroupsComp->result_class, 'BaseInheritedGroups');
331e820d 28
29## unset it
18026fd5 30AccessorGroupsComp->result_class(undef);
31is(AccessorGroupsComp->result_class, undef);