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