#!/usr/bin/env perl use strict; use warnings; use Test::More; use Test::Moose; BEGIN { eval "use MooseX::Declare;"; plan skip_all => "MooseX::Declare not installed; skipping" if $@; } plan tests => 6; role Rollo { use MooseX::POE::Role qw(event); sub foo { ::pass('foo!')} event yarr => sub { ::pass("yarr!") } } does_ok(Rollo->meta, "MooseX::POE::Meta::Role"); class App with Rollo { use MooseX::POE::SweetArgs qw(event); sub START { my ($self) = @_; ::pass('START'); $self->foo(); $self->yield('next'); } event next => sub { my ($self) = @_; ::pass('next'); $self->yield("yarr"); }; sub STOP { ::pass('STOP') } } my $obj = App->new; POE::Kernel->run;