1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More tests => 13;
use Rex::Helper::Path;
use Rex::Commands::File;
my @lines = ( "first line", "second line", "test" );
my $filename = Rex::Helper::Path::get_tmp_file();
file( $filename, content => join "\n", @lines );
ok -e $filename, 'file was created';
{
# standard Rex::FS::File usage - read file
my $fh = Rex::Interface::File->create('Local');
$fh->open( '<', $filename );
my $file_object = Rex::FS::File->new( fh => $fh );
isa_ok $file_object, 'Rex::FS::File', 'new with fh was successful';
my @read_lines = $file_object->read_all;
is_deeply \@read_lines, \@lines, 'read lines from fh';
}
{
# standard Rex::FS::File usage - write file
my $fh = Rex::Interface::File->create('Local');
$fh->open( '>', $filename );
my $file_object = Rex::FS::File->new( fh => $fh );
isa_ok $file_object, 'Rex::FS::File',
'new with fh (write mode) was successful';
$file_object->write(qw/this is a test/);
$file_object->close;
my $read_fh = Rex::Interface::File->create('Local');
$read_fh->open( '<', $filename );
my $read_object = Rex::FS::File->new( fh => $read_fh );
my @read_lines = $read_object->read_all;
is_deeply \@read_lines, [qw/this is a test/], 'read lines from fh';
}
{
# new Rex::FS::File usage - read file
file( $filename, content => join "\n", @lines );
my $file_object = Rex::FS::File->new( filename => $filename );
isa_ok $file_object, 'Rex::FS::File', 'new with filename was successful';
my @read_lines = $file_object->read_all;
is_deeply \@read_lines, \@lines, 'read lines from filename';
}
{
# new Rex::FS::File usage - write file
my $file_object = Rex::FS::File->new( filename => $filename, mode => '>' );
isa_ok $file_object, 'Rex::FS::File',
'new with filename with mode ">" was successful';
$file_object->write(qw/this is a test/);
$file_object->close;
my $read_fh = Rex::Interface::File->create('Local');
$read_fh->open( '<', $filename );
my $read_object = Rex::FS::File->new( fh => $read_fh );
my @read_lines = $read_object->read_all;
is_deeply \@read_lines, [qw/this is a test/], 'read lines from fh';
}
{
# new Rex::FS::File usage - read file - explicit read mode
file( $filename, content => join "\n", @lines );
my $file_object = Rex::FS::File->new( filename => $filename, mode => '<' );
isa_ok $file_object, 'Rex::FS::File',
'new with filename and explicit read mode was successful';
my @read_lines = $file_object->read_all;
is_deeply \@read_lines, \@lines,
'read lines from filename (explicit read mode)';
}
{
# new Rex::FS::File usage - write file - mode "w"
my $file_object = Rex::FS::File->new( filename => $filename, mode => 'w' );
isa_ok $file_object, 'Rex::FS::File',
'new with filename with mode "w" was successful';
$file_object->write(qw/this is a test/);
$file_object->close;
my $read_object = Rex::FS::File->new( filename => $filename, mode => 'r' );
my @read_lines = $read_object->read_all;
is_deeply \@read_lines, [qw/this is a test/], 'read lines from fh';
}
|