[go: up one dir, main page]

File: fs_files.t

package info (click to toggle)
rex 1.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,800 kB
  • sloc: perl: 30,667; xml: 264; makefile: 8
file content (103 lines) | stat: -rw-r--r-- 3,090 bytes parent folder | download | duplicates (2)
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';
}