77aa5f193590aa5248bb7b5ed0ecf71dea0a3eb1
[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->foo, "original foo", 'original foo value');
15 is( $app->bar, "original bar", 'original bar value');
16 is( $app->bor, "original bor", 'original bor value');
17
18 ok($app->load_plugin('Bar'), "Loaded Bar");
19 is( $app->bar, "override bar", 'overridden bar via plugin');
20
21 ok($app->load_plugin('Baz'), "Loaded Baz");
22 is( $app->baz, "plugin baz", 'added baz via plugin');
23 is( $app->bar, "baz'd bar  override bar", 'baz extension for bar using around');
24
25 ok($app->load_plugin('Foo'), "Loaded Foo");
26 is( $app->foo, "around foo", 'around foo via plugin');
27 is( $app->bar, "foo'd bar  baz'd bar  override bar", 'foo extension around baz extension for bar');
28 is( $app->baz, "foo'd baz  plugin baz", 'foo extension override for baz');
29
30 ok($app->load_plugin('Bor'), "Loaded Bor");
31 is( $app->foo, "bor'd foo  around foo", 'bor extension override for foo');
32 is( $app->bor, "plugin bor", 'override bor via plugin');