CPAN-Digger

 view release on metacpan or  search on metacpan

t/01-cli.t  view on Meta::CPAN


sub my_next {
    my ($self) = @_;
    my $res = shift @{$self->{results}};
    return if not $res;

    my $obj = MetaCPAN::Client::Release->new(%$res);
    return $obj;
}

sub recent {
    my ($self, $limit) = @_;
    return _result_set(@results_recent);
}
#sub releases {
#    my ($self) = @_;
#    return _result_set(@results_author);
#}

#sub author {
#    return MetaCPAN::Client::Author->new;
#}

sub _result_set {
    my (@results) = @_;
    my $rs = MetaCPAN::Client::ResultSet->new;
    $rs->{results} = dclone(\@results);
    $rs->{total} = scalar @results;
    return $rs;
}


my $client;
my $resultset;
#my $author;
BEGIN {
    $client = qclass(
        -implement => 'MetaCPAN::Client',
        -with_new => 1,
        recent => \&recent,
#        author => \&author,
    );
    $resultset = qclass(
        -implement => 'MetaCPAN::Client::ResultSet',
        -with_new => 1,
        next => \&my_next,
    );
#    $author = qclass(
#        -implement => 'MetaCPAN::Client::Author',
#        -with_new => 1,
#        releases => \&releases,
#    );
}


use CPAN::Digger::CLI;


subtest recent_in_memory => sub {
    my ($out, $err, $exit) = capture {
        local @ARGV = ('--recent', '2', '--report', '--log', 'OFF');
        CPAN::Digger::CLI::run();
    };

    is $err, '', 'STDERR';
    my $expected_out = path('t/files/recent_in_memory.out')->slurp;
    $out =~ s/^\S+\s+//mg; # remove the dates from each row.
    is $out, $expected_out, 'STDOUT';
    if ($ENV{SAVE}) {
        path('t/files/recent_in_memory.out')->spew($out);
    }
};

done_testing();



( run in 2.123 seconds using v1.01-cache-2.11-cpan-63c85eba8c4 )