1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
use Test::More tests => 13;
use CPAN::Mini::Inject;
use File::Path;
mkdir( 't/local/MYCPAN' );
my $mcpi;
$mcpi = CPAN::Mini::Inject->new;
$mcpi->loadcfg( 't/.mcpani/config' )->parsecfg;
$mcpi->add(
module => 'CPAN::Mini::Inject',
authorid => 'SSORICHE',
version => '0.01',
file => 't/local/mymodules/CPAN-Mini-Inject-0.01.tar.gz'
)->add(
#module => 'Dist::Metadata::Test::MetaFile',
authorid => 'RWSTAUNER',
#version => '2.1',
file => 't/local/mymodules/Dist-Metadata-Test-MetaFile-2.2.tar.gz'
)->add(
module => 'Dist::Metadata::Test::MetaFile',
authorid => 'RWSTAUNER',
version => '2.3', # package versions do not match this
file => 't/local/mymodules/Dist-Metadata-Test-MetaFile-2.2.tar.gz'
)->add(
authorid => 'RWSTAUNER',
file => 't/local/mymodules/Dist-Metadata-Test-MetaFile-Only.tar.gz'
);
my $auth_path = File::Spec->catfile( 'R', 'RW', 'RWSTAUNER' );
is( $mcpi->{authdir}, $auth_path, 'author directory' );
foreach $dist ( qw(
t/local/MYCPAN/authors/id/S/SS/SSORICHE/CPAN-Mini-Inject-0.01.tar.gz
t/local/MYCPAN/authors/id/R/RW/RWSTAUNER/Dist-Metadata-Test-MetaFile-2.2.tar.gz
t/local/MYCPAN/authors/id/R/RW/RWSTAUNER/Dist-Metadata-Test-MetaFile-Only.tar.gz
) ) {
ok( -r $dist, "Added module '$dist' is readable" );
}
foreach $line (
'CPAN::Mini::Inject 0.01 S/SS/SSORICHE/CPAN-Mini-Inject-0.01.tar.gz',
'Dist::Metadata::Test::MetaFile::PM 2.0 R/RW/RWSTAUNER/Dist-Metadata-Test-MetaFile-2.2.tar.gz',
'Dist::Metadata::Test::MetaFile 2.1 R/RW/RWSTAUNER/Dist-Metadata-Test-MetaFile-2.2.tar.gz',
'Dist::Metadata::Test::MetaFile::DiffName 0.02 R/RW/RWSTAUNER/Dist-Metadata-Test-MetaFile-Only.tar.gz',
) {
ok( grep( /$line/, @{ $mcpi->{modulelist} } ), 'Module added to list' )
or diag explain [$line, $mcpi->{modulelist}];
my $pack = ($line =~ /^(\S+)/)[0];
is( grep( /^$pack\s+/, @{ $mcpi->{modulelist} } ),
1, 'Module added to list just once' );
}
is_deeply(
[$mcpi->added_modules],
[
{ file => 'CPAN-Mini-Inject-0.01.tar.gz', authorid => 'SSORICHE', modules => {'CPAN::Mini::Inject' => '0.01'} },
{ file => 'Dist-Metadata-Test-MetaFile-2.2.tar.gz', authorid => 'RWSTAUNER',
modules => { 'Dist::Metadata::Test::MetaFile::PM' => '2.0', 'Dist::Metadata::Test::MetaFile' => '2.1' } },
# added twice (bug in usage not in reporting)
{ file => 'Dist-Metadata-Test-MetaFile-2.2.tar.gz', authorid => 'RWSTAUNER',
modules => { 'Dist::Metadata::Test::MetaFile::PM' => '2.0', 'Dist::Metadata::Test::MetaFile' => '2.1' } },
{ file => 'Dist-Metadata-Test-MetaFile-Only.tar.gz', authorid => 'RWSTAUNER',
modules => {'Dist::Metadata::Test::MetaFile::DiffName' => '0.02'} },
],
'info for added modules'
);
rmtree( 't/local/MYCPAN', 0, 1 );
|