t/10-dnsvi.t
changeset 56 f5b2f3282e7d
parent 33 7d0fac2ec585
child 61 bedb2cce973e
--- 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);