first checkin of MooseX-Object-Pluggable
[gitmo/MooseX-Object-Pluggable.git] / t / 01-basic.t
CommitLineData
421e9f8d 1#!/usr/local/bin/perl
2
3use strict;
4use warnings;
5use Test::More;
6use lib 't/lib';
7
8plan tests => 16;
9
10use_ok('TestApp');
11
12my $app = TestApp->new;
13
14is( $app->foo, "original foo", 'original foo value');
15is( $app->bar, "original bar", 'original bar value');
16is( $app->bor, "original bor", 'original bor value');
17
18ok($app->load_plugin('Bar'), "Loaded Bar");
19is( $app->bar, "override bar", 'overridden bar via plugin');
20
21ok($app->load_plugin('Baz'), "Loaded Baz");
22is( $app->baz, "plugin baz", 'added baz via plugin');
23is( $app->bar, "baz'd bar override bar", 'baz extension for bar using around');
24
25ok($app->load_plugin('Foo'), "Loaded Foo");
26is( $app->foo, "around foo", 'around foo via plugin');
27is( $app->bar, "foo'd bar baz'd bar override bar", 'foo extension around baz extension for bar');
28is( $app->baz, "foo'd baz plugin baz", 'foo extension override for baz');
29
30ok($app->load_plugin('Bor'), "Loaded Bor");
31is( $app->foo, "bor'd foo around foo", 'bor extension override for foo');
32is( $app->bor, "plugin bor", 'override bor via plugin');