use strict; use Test::More tests => 5; use POE qw(Component::Client::DNSBL); use Data::Dumper; my @addresses = qw(test dbltest.com example.com); my $dnsbl = POE::Component::Client::DNSBL->spawn(); isa_ok( $dnsbl, 'POE::Component::Client::DNSBL' ); POE::Session->create( package_states => [ 'main' => [ qw(_start _stop _response) ], ], heap => { addresses => \@addresses, dnsbl => $dnsbl }, ); $poe_kernel->run(); exit 0; sub _start { my ($kernel,$heap) = @_[KERNEL,HEAP]; $heap->{dnsbl}->lookup( event => '_response', address => $_, ) for @{ $heap->{addresses} }; return; } sub _stop { my ($kernel,$heap) = @_[KERNEL,HEAP]; pass("PoCo let the refcount go"); $kernel->call( $heap->{dnsbl}->session_id(), 'shutdown' ); return; } sub _response { my ($kernel,$heap,$record) = @_[KERNEL,HEAP,ARG0]; like( $record->{response}, qr/^(127|NXDOMAIN)/, 'Got a response' ) or diag("Was expecting '^127', got " . Dumper( $record ) . "\n"); return; }