CPANfile-Parse-PPI

 view release on metacpan or  search on metacpan

t/syntax/recommends.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;
use warnings;

use CPANfile::Parse::PPI;
use Test::More;
use Data::Dumper;

my $cpanfile = do { local $/; <DATA> };
my $parser   = CPANfile::Parse::PPI->new( \$cpanfile );

my $check = [
    {
        'stage' => '',
        'type' => 'recommends',
        'version' => '0.26',
        'feature' => '',
        'name' => 'Path::Class',
        'dist' => 'KWILLIAMS/Path-Class-0.26.tar.gz'
    },
    {
        'type' => 'recommends',
        'stage' => '',
        'dist' => 'MIYAGAWA/Hash-MultiValue-0.15.tar.gz',
        'name' => 'Hash::MultiValue',
        'version' => '',
        'feature' => '',
    },
    {
        'stage' => '',
        'mirror' => 'http://cpan.cpantesters.org/',
        'type' => 'recommends',
        'name' => 'Cookie::Baker',
        'dist' => 'KAZEBURO/Cookie-Baker-0.08.tar.gz',
        'version' => '',
        'feature' => '',
    },
    {
        'name' => 'Try::Tiny',
        'version' => '0.28',
        'type' => 'recommends',
        'stage' => '',
        'feature' => '',
    },
    {
        'stage' => '',
        'type' => 'recommends',
        'name' => 'DBI',
        'version' => '',
        'feature' => '',
    },
    {
        'type' => 'recommends',
        'stage' => '',
        'version' => '0.9970',
        'name' => 'Plack',
        'feature' => '',
    },
    {
        'name' => 'Test::More',
        'version' => '',
        'stage' => 'test',
        'type' => 'recommends',
        'feature' => '',
    },
    {
        'name' => 'Test::Feature',
        'version' => '',
        'stage' => '',
        'type' => 'recommends',
        'feature' => 'xyz',
    },
    {
        'name' => 'perl',
        'version' => '>= 5.10.1, != 5.17, != 5.19.3',
        'type' => 'recommends',
        'stage' => '',
        'feature' => '',
    }
];

is_deeply $parser->modules, $check;

done_testing();


__DATA__
recommends 'Path::Class', 0.26,
  dist => "KWILLIAMS/Path-Class-0.26.tar.gz";
 
# omit version specifier
recommends 'Hash::MultiValue',
  dist => "MIYAGAWA/Hash-MultiValue-0.15.tar.gz";
 
# use dist + mirror
recommends 'Cookie::Baker',
  dist => "KAZEBURO/Cookie-Baker-0.08.tar.gz",
  mirror => "http://cpan.cpantesters.org/";
 
# use the full URL
recommends 'Try::Tiny', 0.28,
  url => "http://backpan.perl.org/authors/id/E/ET/ETHER/Try-Tiny-0.28.tar.gz";

recommends 'DBI';
recommends 'Plack', '0.9970';

on 'test' => sub {
    recommends 'Test::More';
};

feature 'xyz', 'great new feature' => sub {
    recommends 'Test::Feature';
};

recommends 'perl' => '>= 5.10.1, != 5.17, != 5.19.3';



( run in 0.866 second using v1.01-cache-2.11-cpan-5735350b133 )