The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# -*- perl -*-

# t/003_dedupe_superseded.t

use 5.010;
use CPAN::Mini::Visit::Simple::Auxiliary qw(
    dedupe_superseded
);
use Test::More tests =>  2;

my $topdir = q{/minicpan/authors/id/D/DR/DROLSKY};
my (@list, $newlist_ref, $expected);

@list = (
    qq{$topdir/Class-MOP-0.82.tar.gz},
    qq{$topdir/Class-MOP-0.88.tar.gz},
    qq{$topdir/Class-MOP-0.98.tar.gz},
    qq{$topdir/Class-MOP-0.78.tar.gz},
    qq{$topdir/Sig-PackageScoped-0.04.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.13.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.14.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.01.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.16.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.16a.tar.gz},
);
$newlist_ref = dedupe_superseded(\@list);

$expected = [
  '/minicpan/authors/id/D/DR/DROLSKY/Class-MOP-0.98.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/Sig-PackageScoped-0.04.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/SmokeRunner-Multi-0.16.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/SmokeRunner-Multi-0.16a.tar.gz'
];
is_deeply( $newlist_ref, $expected,
    "Got expected deduped list" );

@list = (
    qq{$topdir/Class-MOP-0.82.tar.gz},
    qq{$topdir/Class-MOP-0.88.tar.gz},
    qq{$topdir/Class-MOP-0.98.tar.gz},
    qq{$topdir/Class-MOP-1.78.tar.gz},
    qq{$topdir/Sig-PackageScoped-0.04.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.13.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.14.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.01.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.16.tar.gz},
    qq{$topdir/SmokeRunner-Multi-0.16a.tar.gz},
);
$newlist_ref = dedupe_superseded(\@list);

$expected = [
  '/minicpan/authors/id/D/DR/DROLSKY/Class-MOP-1.78.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/Sig-PackageScoped-0.04.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/SmokeRunner-Multi-0.16.tar.gz',
  '/minicpan/authors/id/D/DR/DROLSKY/SmokeRunner-Multi-0.16a.tar.gz'
];
is_deeply( $newlist_ref, $expected,
    "Got expected deduped list" );