summaryrefslogtreecommitdiff
path: root/t/add.t
diff options
context:
space:
mode:
Diffstat (limited to 't/add.t')
-rw-r--r--t/add.t55
1 files changed, 55 insertions, 0 deletions
diff --git a/t/add.t b/t/add.t
new file mode 100644
index 0000000..1e52bfb
--- /dev/null
+++ b/t/add.t
@@ -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 );