1use strict; 2use warnings; 3use Test::More; 4use lib 't/lib'; 5 6plan tests => 16; 7 8use_ok('TestApp'); 9 10my $app = TestApp->new; 11 12is($app->_role_from_plugin('+'.$_), $_) 13 for(qw/MyPrettyPlugin My::Pretty::Plugin/); 14 15is($app->_role_from_plugin($_), 'TestApp::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 25is( $app->_original_class_name, 'TestApp', '_original_class_name works'); 26 27ok($app->load_plugin('Baz'), "Loaded Baz"); 28is( $app->baz, "plugin baz", 'added baz via plugin'); 29 30ok($app->load_plugin('Foo'), "Loaded Foo"); 31is( $app->foo, "around foo", 'around foo via plugin'); 32 33ok($app->load_plugin('+TestApp::Plugin::Bor'), "Loaded Bor"); 34is( $app->bor, "plugin bor", 'override bor via plugin'); 35 36#print $app->meta->dump(3); 37 38 39