t/10-dnsvi.t
changeset 61 bedb2cce973e
parent 56 f5b2f3282e7d
child 62 aff0448cbef9
equal deleted inserted replaced
60:34d98030d4c0 61:bedb2cce973e
    38         TXT    => 4,
    38         TXT    => 4,
    39         AAAA   => 0,
    39         AAAA   => 0,
    40         MX     => 0,
    40         MX     => 0,
    41     },
    41     },
    42     b => {
    42     b => {
    43         RRSETS => 7,
    43         RRSETS => 11,
    44         SOA    => 1,
    44         SOA    => 1,
    45         NS     => 2,
    45         NS     => 2,
    46         A      => 1,
    46         A      => 1,
    47         TXT    => 3,
    47         TXT    => 3,
    48         AAAA   => 0,
    48         AAAA   => 0,
    49         MX     => 0,
    49         MX     => 0,
       
    50 	CNAME  => {
       
    51 	    'foo.km21.de.' => [qw/tte.km21.de./],
       
    52 	    'bar.km21.de.' => [qw/tte.km21.de./],
       
    53 	    'baz.km21.de.' => [qw/tte.km21.de./],
       
    54 	    'faz.km21.de.' => [qw/a.b.c./],
       
    55 	},
    50     },
    56     },
    51     c => {
    57     c => {
    52         RRSETS => 12,
    58         RRSETS => 12,
    53         SOA    => 1,
    59         SOA    => 1,
    54         NS     => 2,
    60         NS     => 2,
    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';