#!/usr/bin/perl -w
use strict;
use warnings;
use Test::More;
use Errno qw/ENOENT EBADF/;
use File::Temp qw/tempfile/;
use Test::MockFile; # Everything below this can have its open overridden.
my $test_string = "abcd\nefgh\n";
my ( $fh_real, $filename ) = tempfile();
print $fh_real $test_string;
note "-------------- REAL MODE --------------";
is( open( $fh_real, '<:stdio', $filename ), 1, "Open a real file bypassing PERLIO" );
is( <$fh_real>, "abcd\n", " ... line 1" );
is( <$fh_real>, "efgh\n", " ... line 2" );
is( <$fh_real>, undef, " ... EOF" );
close $fh_real;
undef $fh_real;
unlink $filename;
note "-------------- MOCK MODE --------------";
my $bar = Test::MockFile->file( $filename, $test_string );
is( open( $fh_real, '<:stdio', $filename ), 1, "Open a real file bypassing PERLIO" );
is( <$fh_real>, "abcd\n", " ... line 1" );
is( <$fh_real>, "efgh\n", " ... line 2" );
is( <$fh_real>, undef, " ... EOF" );
close $fh_real;
ok( -e $filename, "Real file is there" );
undef $bar;
ok( !-e $filename, "Real file is not there" );
done_testing();