update _original_class_name
[gitmo/MooseX-Object-Pluggable.git] / t / 01-basic.t
1 #!/usr/local/bin/perl
2
3 use strict;
4 use warnings;
5 use Test::More;
6 use lib 't/lib';
7
8 plan tests => 16;
9
10 use_ok('TestApp');
11
12 my $app = TestApp->new;
13
14 is($app->_role_from_plugin('+'.$_), $_)
15     for(qw/MyPrettyPlugin My::Pretty::Plugin/);
16
17 is($app->_role_from_plugin($_), 'TestApp::Plugin::'.$_)
18     for(qw/Foo/);
19
20 is( $app->foo, "original foo", 'original foo value');
21 is( $app->bar, "original bar", 'original bar value');
22 is( $app->bor, "original bor", 'original bor value');
23
24 ok($app->load_plugin('Bar'), "Loaded Bar");
25 is( $app->bar, "override bar", 'overridden bar via plugin');
26
27 is( $app->_original_class_name, 'TestApp', '_original_class_name works');
28
29 ok($app->load_plugin('Baz'), "Loaded Baz");
30 is( $app->baz, "plugin baz", 'added baz via plugin');
31
32 ok($app->load_plugin('Foo'), "Loaded Foo");
33 is( $app->foo, "around foo", 'around foo via plugin');
34
35 ok($app->load_plugin('+TestApp::Plugin::Bor'), "Loaded Bor");
36 is( $app->bor, "plugin bor", 'override bor via plugin');
37
38 #print $app->meta->dump(3);
39
40