use strict; use warnings; use utf8; use Test::More; use OrePAN::Package::Index; use File::Temp; use OrePAN::Archive; $Log::Minimal::PRINT = sub { my ( $time, $type, $message, $trace) = @_; note "$time [$type] $message at $trace"; }; my $tmp = File::Temp->new(); # make index { my $index = OrePAN::Package::Index->new(filename => $tmp->filename); my $archive = OrePAN::Archive->new(filename => "t/dummy-cpan/Foo-Bar-0.01.tar.gz"); my %packages = $archive->get_packages; is_deeply \%packages, { 'Foo::Bar' => '0.01' }; my $pauseid = "DUMMY"; $index->add( File::Spec->catfile( substr( $pauseid, 0, 1 ), substr( $pauseid, 0, 2 ), $pauseid, "Foo-Bar-0.01.tar.gz" ), \%packages ); $index->save(); } # and read it. my $fh = IO::Zlib->new($tmp->filename, 'rb') or die $!; my $got = join('', <$fh>); # Note: IO::Zlib does not handle $/ is $got, <<"..."; File: 02packages.details.txt Foo::Bar\t0.01\tD/DU/DUMMY/Foo-Bar-0.01.tar.gz ... done_testing;