1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7
8use IO::Async::Test;
9use IO::Async::Loop;
10
11use IO::Async::Resolver::DNS;
12
13my $loop = IO::Async::Loop->new;
14
15testing_loop( $loop );
16
17my $resolver = $loop->resolver;
18
19{
20   can_ok( $resolver, "res_query" );
21
22   my $result;
23   $resolver->res_query(
24      dname => "www.cpan.org",
25      type  => "A",
26      on_resolved => sub {
27         $result = shift;
28      },
29      on_error => sub { die "Test failed early - $_[-1]" },
30   );
31
32   wait_for { $result };
33
34   isa_ok( $result, "Net::DNS::Packet", '$result from ->res_query isa Net::DNS::Packet' );
35   # Lets not be too sensitive to what the answers actually are
36   cmp_ok( scalar $result->answer, '>=', 1, '$result from ->res_query contains some answers' ) or
37      diag( $result->string );
38}
39
40{
41   can_ok( $resolver, "res_search" );
42
43   my $result;
44   $resolver->res_search(
45      dname => "www.cpan.org",
46      type  => "A",
47      on_resolved => sub {
48         $result = shift;
49      },
50      on_error => sub { die "Test failed early - $_[-1]" },
51   );
52
53   wait_for { $result };
54
55   isa_ok( $result, "Net::DNS::Packet", '$result from ->res_search isa Net::DNS::Packet' );
56   # Lets not be too sensitive to what the answers actually are
57   cmp_ok( scalar $result->answer, '>=', 1, '$result from ->res_search contains some answers' ) or
58      diag( $result->string );
59}
60
61done_testing;
62