#!/usr/bin/perl -w
# vim: filetype=perl
# Test the version 3 API.
use strict;
sub POE::Kernel::ASSERT_DEFAULT () { 1 }
use POE qw(Component::Client::DNS);
use Test::More tests => 5;
use Test::NoWarnings;
POE::Component::Client::DNS->spawn(
Alias => 'named',
Timeout => 5,
);
POE::Session->create(
inline_states => {
_start => \&start_tests,
response => \&got_response,
_stop => sub { }, # avoid assert problems
}
);
POE::Kernel->run();
exit;
sub start_tests {
my $request = 1;
# Default IN A. Override timeout.
$_[KERNEL]->post(
named => resolve => {
event => "response",
host => "localhost",
context => $request++,
timeout => 30,
},
);
# Default IN A. Not found in /etc/hosts.
$_[KERNEL]->post(
named => resolve => {
event => "response",
host => "google.com",
context => $request++,
timeout => 30,
},
);
# IN PTR
$_[KERNEL]->post(
named => resolve => {
event => "response",
host => "127.0.0.1",
class => "IN",
type => "PTR",
context => $request++,
},
);
# Small timeout.
$_[KERNEL]->post(
named => resolve => {
event => "response",
host => "google.com",
context => $request++,
timeout => 0.001,
},
);
}
sub got_response {
my ($request, $response) = @_[ARG0, ARG1];
ok($request->{context}, "got response $request->{context}");
}