use Test::More tests => 7; use strict; use POE; use_ok('POE::Component::Server::NNTP'); POE::Session->create( package_states => [ 'main' => [ qw(_start _stop _time_out nntpd_registered) ], ], options => { trace => 0 }, ); $poe_kernel->run(); exit 0; sub _start { my $kernel = $_[KERNEL]; my $pbobj = POE::Component::Server::NNTP->spawn( port => 0, options => { trace => 0 } ); isa_ok( $pbobj, 'POE::Component::Server::NNTP' ); isa_ok( $pbobj, 'POE::Component::Pluggable' ); pass('started'); $kernel->delay( '_time_out' => 60 ); undef; } sub _stop { pass('stopped'); } sub _time_out { die; } sub _child { my ($kernel,$what,$who) = @_[KERNEL,ARG0,ARG1]; if ( $what eq 'create' ) { $kernel->post( $who => 'shutdown' ); pass('created'); return; } if ( $what eq 'lose' ) { pass('lost'); $kernel->delay( '_time_out' ); return; } undef; } sub nntpd_registered { my ($kernel,$pbobj) = @_[KERNEL,ARG0]; isa_ok( $pbobj, 'POE::Component::Server::NNTP' ); isa_ok( $pbobj, 'POE::Component::Pluggable' ); $kernel->post( $_[SENDER], 'shutdown' ); $kernel->delay( '_time_out' ); return; }