Blame t/23_closed_handle.t
|
Packit |
0bf95d |
#!/usr/bin/perl
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# Test to make sure temporal filehandles created by Archive::Zip::tempFile are closed properly
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
use strict;
|
|
Packit |
0bf95d |
use warnings;
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
use Archive::Zip;
|
|
Packit |
0bf95d |
use Test::MockModule;
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
use Test::More tests => 2;
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# array to store open filhandles
|
|
Packit |
0bf95d |
my @opened_filehandles;
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# mocking File::Temp to store returned filehandles
|
|
Packit |
0bf95d |
my $mock_file_temp = Test::MockModule->new('File::Temp');
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
my $previous_tempfile_sub = \&File::Temp::tmpfile;
|
|
Packit |
0bf95d |
$mock_file_temp->mock(
|
|
Packit |
0bf95d |
tempfile => sub {
|
|
Packit |
0bf95d |
my ( $fh, $filename ) = $previous_tempfile_sub->(@_);
|
|
Packit |
0bf95d |
push( @opened_filehandles, $fh );
|
|
Packit |
0bf95d |
return ( $fh, $filename );
|
|
Packit |
0bf95d |
}
|
|
Packit |
0bf95d |
);
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# calling method
|
|
Packit |
0bf95d |
Archive::Zip::tempFile();
|
|
Packit |
0bf95d |
|
|
Packit |
0bf95d |
# testing filehandles are closed
|
|
Packit |
0bf95d |
ok( scalar @opened_filehandles == 1, "One filehandle was created" );
|
|
Packit |
0bf95d |
ok( !defined $opened_filehandles[0]
|
|
Packit |
0bf95d |
|| !defined fileno( $opened_filehandles[0] )
|
|
Packit |
0bf95d |
|| fileno( $opened_filehandles[0] ) == -1,
|
|
Packit |
0bf95d |
"Filehandle is closed"
|
|
Packit |
0bf95d |
);
|
|
Packit |
0bf95d |
|