t/10-vidns.t
changeset 25 50fbb0fb1120
parent 24 6d79c81a2931
child 26 ca2fe4505294
equal deleted inserted replaced
24:6d79c81a2931 25:50fbb0fb1120
     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();