CPAN-Common-Index

 view release on metacpan or  search on metacpan

t/local_package.t  view on Meta::CPAN

use 5.008001;
use strict;
use warnings;
use Test::More 0.96;
use Test::FailWarnings;
use Test::Deep '!blessed';
use Test::Fatal;

use Cwd qw/getcwd/;
use File::Spec;
use File::Temp ();

use lib 't/lib';
use CommonTests;

my $cwd          = getcwd;
my $localgz      = File::Spec->catfile(qw/t CUSTOM mypackages.gz/);
my $local        = File::Spec->catfile(qw/t CUSTOM uncompressed/);
my $packages     = "mypackages";
my $uncompressed = "uncompressed";

sub new_local_index {
    my $cache = File::Temp->newdir;
    my $index = new_ok(
        'CPAN::Common::Index::LocalPackage' => [ { cache => $cache, source => $localgz } ],
        "new with cache and local gz"
    );
    is $index->cache, $cache, "the cache constructor attribute is respected";
    $index;
}

sub new_uncompressed_local_index {
    my $cache = File::Temp->newdir;
    my $index = new_ok(
        'CPAN::Common::Index::LocalPackage' => [ { cache => $cache, source => $local } ],
        "new with cache and local uncompressed"
    );
    is $index->cache, $cache, "the cache constructor attribute is respected";
    $index;
}

require_ok("CPAN::Common::Index::LocalPackage");

subtest "constructor tests" => sub {
    # no arguments, all defaults
    like(
        exception { CPAN::Common::Index::LocalPackage->new() },
        qr/'source' parameter must be provided/,
        "new with no args dies because source is required"
    );

    # missing file
    like(
        exception {
            CPAN::Common::Index::LocalPackage->new( { source => 'LDJFLKDJLJDLKD' } );
        },
        qr/index file .* does not exist/,
        "new with invalid source dies"
    );

    # source specified
    new_ok(
        'CPAN::Common::Index::LocalPackage' => [ { source => $localgz } ],
        "new with source"
    );

    # both specified



( run in 0.913 second using v1.01-cache-2.11-cpan-54e63673c56 )