t/10-dnsvi.t
changeset 61 bedb2cce973e
parent 56 f5b2f3282e7d
child 62 aff0448cbef9
--- a/t/10-dnsvi.t	Wed Jan 14 09:18:35 2015 +0100
+++ b/t/10-dnsvi.t	Wed Jan 21 20:33:49 2015 +0100
@@ -40,13 +40,19 @@
         MX     => 0,
     },
     b => {
-        RRSETS => 7,
+        RRSETS => 11,
         SOA    => 1,
         NS     => 2,
         A      => 1,
         TXT    => 3,
         AAAA   => 0,
         MX     => 0,
+	CNAME  => {
+	    'foo.km21.de.' => [qw/tte.km21.de./],
+	    'bar.km21.de.' => [qw/tte.km21.de./],
+	    'baz.km21.de.' => [qw/tte.km21.de./],
+	    'faz.km21.de.' => [qw/a.b.c./],
+	},
     },
     c => {
         RRSETS => 12,
@@ -81,25 +87,33 @@
     grep { $_ ne 'RRSETS' } sort keys %h;
 };
 
-#foreach my $sample (sort keys %expect) {
-foreach my $sample ('d') {
+foreach my $sample (sort keys %expect) {
     my $file = "t/samples/$sample";
 
     subtest "sample $file" => sub {
         my %expect = %{ $expect{$sample} };
         my @zone   = parse(slurp $file);
-#	use Data::Dumper;
 #	diag Dumper \@zone;
         is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS";
         foreach my $type (@sets) {
 #	    diag '----------->' . $type;
-	    if (ref $expect{$type}) {
+	    if (ref $expect{$type} eq ref[]) {
 		my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone;
 		is_deeply \@entries, $expect{$type} => 'list of labels';
 	    }
+	    elsif (ref $expect{$type} eq ref{}) {
+#		use Data::Dumper;
+		foreach my $label (keys %{ $expect{$type} }) {
+		    #diag Dumper $expect{$type}{$label};
+		    #diag Dumper $expect{$type};
+		    my @entries = sort map { $_->{data} } grep { $_->{label} eq $label and $_->{rrtype} eq $type } map { $_->{rrset} } @zone;
+#		    diag Dumper \@entries;
+		    is_deeply \@entries, $expect{$type}{$label} => 'complete rrsets',
+		}
+	    }
 	    else {
             is grep({ $_->{rrset}{rrtype} eq $type } @zone),
-		$expect{$type} => "number of $type rrsets\n";
+		$expect{$type}//0 => "number of $type rrsets\n";
 	    }
         }