NAME
POE::Component::IRC::Test::Plugin - Part of the POE::Component::IRC test-suite.
SYNOPSIS
use Test::More tests => 16;BEGIN { use_ok('POE::Component::IRC') };BEGIN { use_ok('POE::Component::IRC::Test::Plugin') };use POE;my $self = POE::Component::IRC->spawn( );isa_ok ( $self, 'POE::Component::IRC' );POE::Session->create(inline_states => { _start => \&test_start, },package_states => [main => [ qw(irc_plugin_add irc_plugin_del) ],],);$poe_kernel->run();sub test_start {my ($kernel, $heap) = @_[KERNEL, HEAP];$self->yield( 'register' => 'all' );my $plugin = POE::Component::IRC::Test::Plugin->new();isa_ok ( $plugin, 'POE::Component::IRC::Test::Plugin' );$heap->{counter} = 6;if ( !$self->plugin_add( 'TestPlugin' => $plugin ) ) {fail( 'plugin_add' );$self->yield( 'unregister' => 'all' );$self->yield( 'shutdown' );}return:}sub irc_plugin_add {my ($kernel, $heap, $desc, $plugin) = @_[KERNEL, HEAP, ARG0, ARG1];isa_ok ( $plugin, 'POE::Component::IRC::Test::Plugin' );if ( !$self->plugin_del( 'TestPlugin' ) ) {fail( 'plugin_del' );$self->yield( 'unregister' => 'all' );$self->yield( 'shutdown' );}return;}sub irc_plugin_del {my ($kernel, $heap, $desc, $plugin) = @_[KERNEL, HEAP, ARG0, ARG1];isa_ok ( $plugin, 'POE::Component::IRC::Test::Plugin' );$heap->{counter}--;if ( $heap->{counter} <= 0 ) {$self->yield( 'unregister' => 'all' );$self->yield( 'shutdown' );}else {if ( !$self->plugin_add( 'TestPlugin' => $plugin ) ) {fail( 'plugin_add' );$self->yield( 'unregister' => 'all' );$self->yield( 'shutdown' );}}return:}
DESCRIPTION
POE::Component::IRC::Test::Plugin is a very simple POE::Component::IRC plugin used to test that the plugin system is working correctly, as demonstrated in the SYNOPSIS.
CONSTRUCTOR
- "new"
-
No arguments required, returns an POE::Component::IRC::Test::Plugin object.
AUTHOR
Chris "BinGOs" Williams
SEE ALSO
POE::Component::IRC