Parse-Distname

 view release on metacpan or  search on metacpan

t/compat/path.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Differences;
use JSON::PP;
use Parse::Distname;

local $/ ="";

unified_diff;
sub encode { JSON::PP->new->canonical->pretty->encode(shift) }

while(<DATA>) {
  chomp;
  s/^#[^\n]+\n//s;
  my($file,%exp) = split(/[ \n]+/, $_);
  $exp{pathname} = $file;
  my $d = Parse::Distname->new($file);
  my %got = $d->properties;
  while (my($k, $v) = each %got) {
    is($d->$k(), $v);
  }
  eq_or_diff(encode(\%got), encode(\%exp));
}

done_testing;

__DATA__
CPAN/authors/id/J/JA/JAMCC/ngb-101.zip
        filename        ngb-101.zip
        dist            ngb
        maturity        released
        distvname       ngb-101
        version         101
        cpanid          JAMCC
        extension       zip

CPAN/authors/id/J/JS/JSHY/DateTime-Fiscal-Year-0.01.tar.gz
        filename        DateTime-Fiscal-Year-0.01.tar.gz
        dist            DateTime-Fiscal-Year
        maturity        released
        distvname       DateTime-Fiscal-Year-0.01
        version         0.01
        cpanid          JSHY
        extension       tar.gz

CPAN/authors/id/G/GA/GARY/Math-PRSG-1.0.tgz
        filename        Math-PRSG-1.0.tgz
        dist            Math-PRSG
        maturity        released
        distvname       Math-PRSG-1.0
        version         1.0
        cpanid          GARY
        extension       tgz

CPAN/authors/id/G/GA/GARY/Math-BigInteger-1.0.tar.gz
        filename        Math-BigInteger-1.0.tar.gz
        dist            Math-BigInteger
        maturity        released
        distvname       Math-BigInteger-1.0
        version         1.0
        cpanid          GARY
        extension       tar.gz



( run in 2.109 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )