App-RetroPAN

 view release on metacpan or  search on metacpan

t/retropan.t  view on Meta::CPAN

#!/usr/bin/env perl
# vim:ts=4:shiftwidth=4:expandtab

use strict;
use warnings;
use Test::More;

use App::RetroPAN;
use File::Temp qw/ tempdir /;

use_ok 'App::RetroPAN';

my $ua = LWP::UserAgent->new();
my $req = HTTP::Request->new( GET => "https://fastapi.metacpan.org/v1/release/_search" );
my $res = $ua->request($req);

SKIP: {
    skip "Cannot reach API server" if !$res->is_success;

    ok $res->is_success, "API server reachable";

    my ($author, $dist, $url) = App::RetroPAN::find_module_on_date("Moose", "2011-01-01T00:00:00");

    is($dist, "Moose-1.21");
    is($author, "DROLSKY");
    like($url, qr/^http.*Moose-1\.21\.tar\.gz/);

    ($author, $dist, $url) = App::RetroPAN::find_module_on_date("Pod::Spell", "2002-01-01T00:00:00");
    is($dist, "Pod-Spell-1.01");
    is($author, "SBURKE");

    ($author, $dist, $url) = App::RetroPAN::find_module_on_date("Pod::Spell", "2016-02-22T00:00:00");
    is($dist, "Pod-Spell-1.19");
    is($author, "DOLMEN");

    ($author, $dist, $url) = App::RetroPAN::find_module_on_date("Class::C3", "2011-01-01T00:00:00");
    is($dist, "Class-C3-0.23");
    is($author, "FLORA");

    ($author, $dist, $url) = App::RetroPAN::find_module_on_date("DBI", "2015-01-01T00:00:00");
    is($dist, "DBI-1.632");
    is($author, "TIMB");

    my @deps = App::RetroPAN::find_module_dependencies("DROLSKY", "Moose-1.21");
    is_deeply(\@deps, [qw/ Test::Requires Test::Fatal Params::Util Data::OptList Sub::Name Class::MOP Task::Weaken Try::Tiny Package::DeprecationManager List::MoreUtils Sub::Exporter /]);

    my ($dists_required, $dist_to_url) = App::RetroPAN::find_deps_on_date("2011-01-01T00:00:00", "Moose");
    isa_ok($dist_to_url, 'HASH');

    {
        local $TODO = "B::Debug was removed from core" if ($^V ge v5.30.0);
        is_deeply($dists_required, [qw|
            CHOCOLATE/Scope-Guard-0.20
            FLORA/Devel-GlobalDestruction-0.03
            DOY/Package-Stash-0.13
            FLORA/Algorithm-C3-0.08
            FLORA/Class-C3-0.23
            FLORA/MRO-Compat-0.11
            FLORA/Sub-Name-0.05
            DROLSKY/Class-MOP-1.11
            ADAMK/Task-Weaken-1.03
            DOY/Try-Tiny-0.09
            RJBS/Test-Fatal-0.003
            TOKUHIROM/Test-Requires-0.06
            DROLSKY/Package-DeprecationManager-0.10
            VPARSEVAL/List-MoreUtils-0.24
            RJBS/Sub-Install-0.925
            RJBS/Data-OptList-0.106
            ADAMK/Params-Util-1.03
            RJBS/Sub-Exporter-0.982
            DROLSKY/Moose-1.21
        |]);
    }



( run in 1.823 second using v1.01-cache-2.11-cpan-98e64b0badf )