Commit | Line | Data |
b0dd4f7b |
1 | use strict; |
2 | use warnings; |
3 | |
4 | use FindBin; |
5 | use Test::More; |
6 | use Test::Exception; |
7 | |
8 | use lib "$FindBin::Bin/lib"; |
9 | |
10 | plan tests => 7; |
11 | |
12 | use_ok('MyModuleNoBase'); |
13 | is(MyModuleNoBase->new->message, " MyModuleNoBase", "initial message matches"); |
14 | lives_ok ( |
15 | sub { MyModuleNoBase->load_components('+MyModule::Plugin::Foo') }, |
16 | 'explicit load_components does not throw', |
17 | ); |
18 | is(MyModuleNoBase->new->message, "Foo MyModuleNoBase", "component works"); |
19 | |
20 | throws_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 | |
26 | throws_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 | |
32 | lives_ok ( |
33 | sub { MyModuleNoBase->load_optional_components('+ClassC3ComponentFooThatShouldntExist') }, |
34 | 'explicit optional component specification does not throw', |
35 | ); |