79 my %h; |
85 my %h; |
80 @h{ map { keys %{$_} } values %expect } = (); |
86 @h{ map { keys %{$_} } values %expect } = (); |
81 grep { $_ ne 'RRSETS' } sort keys %h; |
87 grep { $_ ne 'RRSETS' } sort keys %h; |
82 }; |
88 }; |
83 |
89 |
84 #foreach my $sample (sort keys %expect) { |
90 foreach my $sample (sort keys %expect) { |
85 foreach my $sample ('d') { |
|
86 my $file = "t/samples/$sample"; |
91 my $file = "t/samples/$sample"; |
87 |
92 |
88 subtest "sample $file" => sub { |
93 subtest "sample $file" => sub { |
89 my %expect = %{ $expect{$sample} }; |
94 my %expect = %{ $expect{$sample} }; |
90 my @zone = parse(slurp $file); |
95 my @zone = parse(slurp $file); |
91 # use Data::Dumper; |
|
92 # diag Dumper \@zone; |
96 # diag Dumper \@zone; |
93 is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS"; |
97 is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS"; |
94 foreach my $type (@sets) { |
98 foreach my $type (@sets) { |
95 # diag '----------->' . $type; |
99 # diag '----------->' . $type; |
96 if (ref $expect{$type}) { |
100 if (ref $expect{$type} eq ref[]) { |
97 my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
101 my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
98 is_deeply \@entries, $expect{$type} => 'list of labels'; |
102 is_deeply \@entries, $expect{$type} => 'list of labels'; |
99 } |
103 } |
|
104 elsif (ref $expect{$type} eq ref{}) { |
|
105 # use Data::Dumper; |
|
106 foreach my $label (keys %{ $expect{$type} }) { |
|
107 #diag Dumper $expect{$type}{$label}; |
|
108 #diag Dumper $expect{$type}; |
|
109 my @entries = sort map { $_->{data} } grep { $_->{label} eq $label and $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
|
110 # diag Dumper \@entries; |
|
111 is_deeply \@entries, $expect{$type}{$label} => 'complete rrsets', |
|
112 } |
|
113 } |
100 else { |
114 else { |
101 is grep({ $_->{rrset}{rrtype} eq $type } @zone), |
115 is grep({ $_->{rrset}{rrtype} eq $type } @zone), |
102 $expect{$type} => "number of $type rrsets\n"; |
116 $expect{$type}//0 => "number of $type rrsets\n"; |
103 } |
117 } |
104 } |
118 } |
105 |
119 |
106 my ($added, $deleted) = delta(\@zone, \@zone); |
120 my ($added, $deleted) = delta(\@zone, \@zone); |
107 is @$added, 0 => 'nothing added'; |
121 is @$added, 0 => 'nothing added'; |