Release v1.001000
[p5sagit/Class-C3-Componentised.git] / t / 02-explicit.t
CommitLineData
b0dd4f7b 1use strict;
2use warnings;
3
4use FindBin;
5use Test::More;
6use Test::Exception;
7
8use lib "$FindBin::Bin/lib";
9
10plan tests => 7;
11
12use_ok('MyModuleNoBase');
13is(MyModuleNoBase->new->message, " MyModuleNoBase", "initial message matches");
14lives_ok (
15 sub { MyModuleNoBase->load_components('+MyModule::Plugin::Foo') },
16 'explicit load_components does not throw',
17);
18is(MyModuleNoBase->new->message, "Foo MyModuleNoBase", "component works");
19
20throws_ok (
21 sub { MyModuleNoBase->load_components('ClassC3ComponentFooThatShouldntExist') },
22 qr/Can't locate object method "component_base_class"/,
23 'non-explicit component specification fails without component_base_class()',
24);
25
26throws_ok (
27 sub { MyModuleNoBase->load_optional_components('ClassC3ComponentFooThatShouldntExist') },
28 qr/Can't locate object method "component_base_class"/,
29 'non-explicit component specification fails without component_base_class()',
30);
31
32lives_ok (
33 sub { MyModuleNoBase->load_optional_components('+ClassC3ComponentFooThatShouldntExist') },
34 'explicit optional component specification does not throw',
35);