t/10-vidns.t
changeset 15 aa1598910bb0
parent 10 efba68ef7f89
--- 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();