The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict; use warnings;
use Test::More tests => 6;

{

    package Base;
    use MooseX::POE;

    sub START {
        ::pass('Base Start');
    }

    event hello => sub {
        ::pass('hello');
        $_[KERNEL]->yield('goodbye');
    };
}
{

    package Extended;
    use MooseX::POE;

    extends 'Base';

    sub START {
        ::pass('Extended after Start');
        $_[KERNEL]->yield( 'hello' => 'world' );
    }

    before 'hello' => sub {
        ::is( $_[ARG0], 'world', 'before saw world' );
    };

    after 'hello' => sub {
        ::is( $_[ARG0], 'world', 'after saw world' );
    };

    event goodbye => sub {
        ::pass('goodbye');
    };

}

my $foo = Extended->new();
POE::Kernel->run();