1use strict;
2use warnings;
3use Test::More;
4use lib 't/lib';
5
6plan tests => 15;
7
8use_ok('TestApp2');
9
10my $app = TestApp2->new;
11
12is($app->_role_from_plugin('+'.$_), $_)
13    for(qw/MyPrettyPlugin My::Pretty::Plugin/);
14
15is($app->_role_from_plugin($_), 'TestApp2::Plugin::'.$_)
16    for(qw/Foo/);
17
18is( $app->foo, "original foo", 'original foo value');
19is( $app->bar, "original bar", 'original bar value');
20is( $app->bor, "original bor", 'original bor value');
21
22ok($app->load_plugin('Bar'), "Loaded Bar");
23is( $app->bar, "override bar", 'overridden bar via plugin');
24
25ok($app->load_plugin('Baz'), "Loaded Baz");
26is( $app->baz, "plugin baz", 'added baz via plugin');
27
28ok($app->load_plugin('Foo'), "Loaded Foo");
29is( $app->foo, "around foo 2", 'around foo via plugin');
30
31ok($app->load_plugin('+TestApp::Plugin::Bor'), "Loaded Bor");
32is( $app->bor, "plugin bor", 'override bor via plugin');
33