diff -r 0f37544f1b98 -r aa1598910bb0 t/10-vidns.t --- a/t/10-vidns.t Fri May 23 16:15:41 2014 +0200 +++ b/t/10-vidns.t Sat May 24 23:01:17 2014 +0200 @@ -5,37 +5,43 @@ use warnings; use_ok 'DNS::Vi' or BAIL_OUT 'DNS::Vi not found!'; -can_ok 'DNS::Vi', qw(ttl2h h2ttl parse nice delta); +can_ok 'DNS::Vi', qw(ttl2h h2ttl parse nice delta edit update show); # TODO: more tests! is ttl2h(86400), '1d', '-> 1d'; is h2ttl('1d'), 86400, '<- 1d'; -my $data = do { +my $data1 = do { local $/ = undef; local @ARGV = 't/samples/kugelbus-axfr'; <>; }; -my @zone1 = parse($data); -is @zone1, 64 => '64 rrsets'; +# check parser with and without skip list +is parse($data1), 64 => '64 rrsets'; +my @zone1 = + parse($data1, { -skip => [qw(RRSIG NSEC3 NSEC3PARAM NSEC DNSKEY TSIG)] }); +is @zone1, 18 => '18 rrsets'; -$data =~ s{^kugelbus.*?IN\s+MX.*?$}{}m; -$data .= <<_; -foo 1h txt "foo" - 30m A 1.1.1.1 -_ -my @zone2 = parse($data); -is @zone2, 65, => '65 rrsets'; +subtest 'parsed data' => sub { + my ($soa) = + map { $_->{rrset} } grep { $_->{rrset}{rrtype} eq 'SOA' } @zone1; + is ref $soa, 'HASH' => 'got result hash'; + is $soa->{rrtype}, 'SOA' => 'is SOA'; + is $soa->{data}, + 'pu.schlittermann.de. ' + . 'hostmaster.net.schlittermann.de. ' + . '18 86400 7200 604800 86400' => 'has expected data'; -my ($add, $del) = delta(\@zone1, \@zone2); -is @$add, 2 => '2 sets to add'; -is @$del, 1 => '1 set to delete'; + my @txt = map { $_->{rrset} } grep { $_->{rrset}{rrtype} eq 'TXT' } @zone1; + is @txt, 3 => 'got 3 txt records'; +}; -is_deeply $add, - ['foo.kugelbus.de. 1800 A 1.1.1.1', 'foo.kugelbus.de. 3600 TXT "foo"'] => - 'added datasets'; -is_deeply $del, - ['kugelbus.de. 86400 MX 10 ssl.schlittermann.de.'] => 'removed datasets'; +# delta should find noting +subtest 'delta' => sub { + my ($add, $del) = delta(\@zone1, \@zone1); + is @$add, 0 => 'nothing added'; + is @$del, 0 => 'nothing deleted'; +}; done_testing();