add travis config
[p5sagit/Class-C3-Componentised.git] / t / 02-explicit.t
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 );