t/10-dnsvi.t
changeset 106 140d7537105e
parent 105 9069ce49fd83
--- a/t/10-dnsvi.t	Thu Jul 14 10:30:58 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-#! perl
-
-use 5.010;
-use Test::More;
-use strict;
-use warnings;
-use File::Basename;
-
-use_ok 'DNS::Vi' or BAIL_OUT 'DNS::Vi not found!';
-can_ok 'DNS::Vi', qw(ttl2h h2ttl parse nice delta edit update show);
-
-# TODO: more tests!
-is ttl2h(86400), '1d',  '-> 1d';
-is h2ttl('1d'),  86400, '<- 1d';
-
-sub slurp {
-    local $/ = undef;
-    open(my $x, '<', shift);
-    return <$x>;
-}
-
-# the expect must match the t/samples/? files
-my %expect = (
-    axfr => {
-        RRSETS => 64,
-        SOA    => 1,
-        NS     => 2,
-        A      => 6,
-        TXT    => 3,
-        AAAA   => 1,
-        MX     => 5,
-    },
-    a => {
-        RRSETS => 32,
-        SOA    => 1,
-        NS     => 16,
-        A      => 9,
-        TXT    => 4,
-        AAAA   => 0,
-        MX     => 0,
-	SOA    => {
-	    'km21.de.' => ['pu.km21.de. hostmaster.schlittermann.de. 1397766411 86400 7200 604800 300'],
-	},
-    },
-    b => {
-        RRSETS => 11,
-        SOA    => {
-	    'km21.de.' => ['pu.schlittermann.de. hostmaster.schlittermann.de. 1397766411 86400 7200 604800 300'],
-	},
-        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,
-        SOA    => 1,
-        NS     => 2,
-        A      => 2,
-        TXT    => 5,
-        AAAA   => 0,
-        MX     => 2,
-    },
-    d => {
-        RRSETS => 15,
-        SOA    => 1,
-        NS     => 2,
-        A      => [qw/
-	    abc.de.km21.de.
-	    foo.km21.de.
-	    tte.km21.de.
-	    tte.km21.de.
-	    bar.km21.de.
-	/],
-        TXT    => { 
-	    'km21.de.' => [ map { "\"$_\"" }
-		'invoice: self', 
-		'utf8: km21.de', 
-		'start: 1396981300 2014-04-08T20:21:40', 
-	    ],
-	    'tte.km21.de.' => [ map { "\"$_\"" } 'tte', 'tte2' ],
-	},
-        AAAA   => 0,
-        MX     => 2,
-    },
-    'frey-1' => {
-	RRSETS => 6,
-	SOA => { 'example.com.' => ['p.example.com. hostmaster.example.com. 47 3600 900 604800 300'] },
-	A => { 'p.example.com.' => ['1.1.1.1', '2.2.2.2'] },
-	NS => { 'example.com.' => ['p.example.com.'] },
-	CNAME => {
-	    'proxy.mm.frey.example.com.' => ['uxa.frey.example.com.'],
-	    'portal.mm.frey.example.com.'=> ['uxb.frey.example.com.'],
-	},
-    },
-    dkim => {
-	RRSETS => 2,
-	TXT => { 'k1._domainkey.km21.de.' => ['"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AM"'] },
-	SOA => 1,
-    }
-);
-
-# uniq list of rrtypes we want to test
-my @sets = do {
-    my %h;
-    @h{ map { keys %{$_} } values %expect } = ();
-    grep { $_ ne 'RRSETS' } sort keys %h;
-};
-
-foreach my $sample (sort keys %expect) {
-    my $file = "t/samples/$sample";
-
-    subtest "sample $file" => sub {
-        my %expect = %{ $expect{$sample} };
-        my @zone   = parse(slurp $file);
-        is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS";
-        foreach my $type (@sets) {
-	    if (ref $expect{$type} eq ref[]) {
-		my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone;
-		is_deeply \@entries, [sort @{$expect{$type}} ] => 'list of labels';
-	    }
-	    elsif (ref $expect{$type} eq ref{}) {
-		foreach my $label (keys %{ $expect{$type} }) {
-		    my @entries = sort map { $_->{data} } grep { $_->{label} eq $label and $_->{rrtype} eq $type } map { $_->{rrset} } @zone;
-		    is_deeply \@entries, [sort @{ $expect{$type}{$label} }] => 'complete rrsets',
-		}
-	    }
-	    else {
-            is grep({ $_->{rrset}{rrtype} eq $type } @zone),
-		$expect{$type}//0 => "number of $type rrsets";
-	    }
-        }
-
-	my %delta = delta(\@zone, \@zone);
-        is @{$delta{add}}, 0 => 'nothing added';
-        is @{$delta{del}}, 0 => 'nothing deleted';
-      }
-}
-
-done_testing();