diff options
Diffstat (limited to 't/add.t')
-rw-r--r-- | t/add.t | 55 |
1 files changed, 55 insertions, 0 deletions
@@ -0,0 +1,55 @@ +use Test::More tests => 6; + +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 => 'CPAN::Mini::Inject', + authorid => 'SSORICHE', + version => '0.02', + file => 't/local/mymodules/CPAN-Mini-Inject-0.01.tar.gz' + ); + +my $soriche_path = File::Spec->catfile( 'S', 'SS', 'SSORICHE' ); +is( $mcpi->{authdir}, $soriche_path, 'author directory' ); +ok( + -r 't/local/MYCPAN/authors/id/S/SS/SSORICHE/CPAN-Mini-Inject-0.01.tar.gz', + 'Added module is readable' +); +my $module + = "CPAN::Mini::Inject 0.02 S/SS/SSORICHE/CPAN-Mini-Inject-0.01.tar.gz"; +ok( grep( /$module/, @{ $mcpi->{modulelist} } ), + 'Module added to list' ); +is( grep( /^CPAN::Mini::Inject\s+/, @{ $mcpi->{modulelist} } ), + 1, 'Module added to list just once' ); + +SKIP: { + skip "Not a UNIX system", 2 if ( $^O =~ /^MSWin/ ); + is( ( stat( 't/local/MYCPAN/authors/id/S/SS/SSORICHE' ) )[2] & 07777, + 0775, 'Added author directory mode is 0775' ); + is( + ( + stat( + 't/local/MYCPAN/authors/id/S/SS/SSORICHE/CPAN-Mini-Inject-0.01.tar.gz' + ) + )[2] & 07777, + 0664, + 'Added module mode is 0664' + ); +} + +# XXX do the same test as above again, but this time with a ->readlist after +# the ->parsecfg + +rmtree( 't/local/MYCPAN', 0, 1 ); |