1 #! perl |
|
2 |
|
3 use Test::More; |
|
4 use strict; |
|
5 use warnings; |
|
6 |
|
7 use_ok 'DNS::Vi' or BAIL_OUT 'DNS::Vi not found!'; |
|
8 can_ok 'DNS::Vi', qw(ttl2h h2ttl parse nice delta edit update show); |
|
9 |
|
10 # TODO: more tests! |
|
11 is ttl2h(86400), '1d', '-> 1d'; |
|
12 is h2ttl('1d'), 86400, '<- 1d'; |
|
13 |
|
14 my $data1 = do { |
|
15 local $/ = undef; |
|
16 local @ARGV = 't/samples/kugelbus-axfr'; |
|
17 <>; |
|
18 }; |
|
19 |
|
20 # check parser with and without skip list |
|
21 is parse($data1), 64 => '64 rrsets'; |
|
22 my @zone1 = |
|
23 parse($data1, { -skip => [qw(RRSIG NSEC3 NSEC3PARAM NSEC DNSKEY TSIG)] }); |
|
24 is @zone1, 18 => '18 rrsets'; |
|
25 |
|
26 subtest 'parsed data' => sub { |
|
27 my ($soa) = |
|
28 map { $_->{rrset} } grep { $_->{rrset}{rrtype} eq 'SOA' } @zone1; |
|
29 is ref $soa, 'HASH' => 'got result hash'; |
|
30 is $soa->{rrtype}, 'SOA' => 'is SOA'; |
|
31 is $soa->{data}, |
|
32 'pu.schlittermann.de. ' |
|
33 . 'hostmaster.net.schlittermann.de. ' |
|
34 . '18 86400 7200 604800 86400' => 'has expected data'; |
|
35 |
|
36 my @txt = map { $_->{rrset} } grep { $_->{rrset}{rrtype} eq 'TXT' } @zone1; |
|
37 is @txt, 3 => 'got 3 txt records'; |
|
38 }; |
|
39 |
|
40 # delta should find noting |
|
41 subtest 'delta' => sub { |
|
42 my ($add, $del) = delta(\@zone1, \@zone1); |
|
43 is @$add, 0 => 'nothing added'; |
|
44 is @$del, 0 => 'nothing deleted'; |
|
45 }; |
|
46 |
|
47 done_testing(); |
|