more tests
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Tue, 13 Jan 2015 23:08:51 +0100
changeset 56 f5b2f3282e7d
parent 48 d8a3e745d34e
child 57 179ec13d9001
more tests
t/10-dnsvi.t
t/samples/d
--- a/t/10-dnsvi.t	Fri Nov 14 10:05:57 2014 +0100
+++ b/t/10-dnsvi.t	Tue Jan 13 23:08:51 2015 +0100
@@ -19,8 +19,8 @@
     return <$x>;
 }
 
-# the results must match the t/samples/? files
-my %result = (
+# the expect must match the t/samples/? files
+my %expect = (
     axfr => {
         RRSETS => 64,
         SOA    => 1,
@@ -57,25 +57,50 @@
         AAAA   => 0,
         MX     => 2,
     },
+    d => {
+        RRSETS => 15,
+        SOA    => 1,
+        NS     => 2,
+        A      => [sort qw/
+	    abc.de.km21.de.
+	    foo.km21.de.
+	    tte.km21.de.
+	    tte.km21.de.
+	    bar.km21.de.
+	/],
+        TXT    => 5,
+        AAAA   => 0,
+        MX     => 2,
+    },
 );
 
 # uniq list of rrtypes we want to test
 my @sets = do {
     my %h;
-    @h{ map { keys %{$_} } values %result } = ();
+    @h{ map { keys %{$_} } values %expect } = ();
     grep { $_ ne 'RRSETS' } sort keys %h;
 };
 
-foreach my $sample (sort keys %result) {
+#foreach my $sample (sort keys %expect) {
+foreach my $sample ('d') {
     my $file = "t/samples/$sample";
 
     subtest "sample $file" => sub {
-        my %result = %{ $result{$sample} };
+        my %expect = %{ $expect{$sample} };
         my @zone   = parse(slurp $file);
-        is @zone, $result{RRSETS} => "$sample: $result{RRSETS} RRSETS";
+#	use Data::Dumper;
+#	diag Dumper \@zone;
+        is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS";
         foreach my $type (@sets) {
+#	    diag '----------->' . $type;
+	    if (ref $expect{$type}) {
+		my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone;
+		is_deeply \@entries, $expect{$type} => 'list of labels';
+	    }
+	    else {
             is grep({ $_->{rrset}{rrtype} eq $type } @zone),
-              $result{$type} => "$sample: $result{$type} $type";
+		$expect{$type} => "number of $type rrsets\n";
+	    }
         }
 
         my ($added, $deleted) = delta(\@zone, \@zone);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/t/samples/d	Tue Jan 13 23:08:51 2015 +0100
@@ -0,0 +1,19 @@
+$ORIGIN km21.de.
+$TTL 1d
+; do NOT EDIT the SOA records SERIAL number!
+@               SOA    pu.schlittermann.de. hostmaster.schlittermann.de. 1397766411 86400 7200 604800 300
+                NS     hh.schlittermann.de.
+                NS     pu.schlittermann.de.
+                TXT    "invoice: self"
+                TXT    "utf8: km21.de"
+                TXT    "start: 1396981300 2014-04-08T20:21:40"
+tte             A      85.214.245.1
+    IN A 1.1.1.1
+    TXT "tte"
+; only one space
+ IN TXT "tte2"
+ IN MX 10 mexico.
+  IN MX 20 mx20.
+foo  A 1.1.1.2
+bar.km21.de. A 1.1.1.3
+abc.de A 1.2.3.4