1use strict;
2use Test::More tests => 5;
3
4use IO::Scalar;
5
6use lib 't/lib';
7use Foo;
8use Foo::Bar;
9
10ok(Foo->add_trigger(before_foo => sub { print "before_foo\n" }),
11   'add_trigger in Foo');
12ok(Foo::Bar->add_trigger(after_foo  => sub { print "after_foo\n" }),
13   'add_trigger in Foo::Bar');
14ok(Foo::Bar->add_trigger(before_foo  => sub { print "before_foo2\n" }),
15   'add_trigger in Foo::Bar');
16
17my $foo = Foo::Bar->new;
18
19{
20    tie *STDOUT, 'IO::Scalar', \my $out;
21    $foo->foo;
22    is $out, "before_foo\nbefore_foo2\nfoo\nafter_foo\n";
23}
24
25my $foo_parent = Foo->new;
26{
27    tie *STDOUT, 'IO::Scalar', \my $out;
28    $foo_parent->foo;
29    is $out, "before_foo\nfoo\n", 'Foo not affected';
30}
31
32
33