File Coverage

blib/lib/Rex/Test/Spec/file.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1             package Rex::Test::Spec::file;
2              
3 1     1   365 use strict;
  1         2  
  1         34  
4 1     1   3 use warnings;
  1         1  
  1         29  
5              
6 1     1   956 use Rex -base;
  0            
  0            
7              
8             sub new {
9             my $that = shift;
10             my $proto = ref($that) || $that;
11             my $self = {@_};
12              
13             bless( $self, $proto );
14              
15             my ( $pkg, $file ) = caller(0);
16              
17             return $self;
18             }
19              
20             sub ensure {
21             my ( $self ) = @_;
22             my $ret = 'absent';
23             if ( Rex::Commands::Fs::is_symlink($self->{name}) ) {
24             $ret = 'symlink';
25             } elsif ( is_file($self->{name}) ) {
26             $ret = 'file';
27             } elsif ( is_dir($self->{name}) ) {
28             $ret = 'directory';
29             };
30             return $ret;
31             }
32              
33             sub mode {
34             my ( $self ) = @_;
35             my %ret = stat($self->{name});
36             return $ret{mode};
37             }
38              
39             sub uid {
40             my ( $self ) = @_;
41             my %ret = stat($self->{name});
42             return $ret{uid};
43             }
44              
45             sub owner {
46             my ( $self ) = @_;
47             my %ret = stat($self->{name});
48             for my $user (user_list) {
49             return $user if get_uid($user) == $ret{uid};
50             }
51             }
52              
53             sub readable {
54             my ( $self ) = @_;
55             return is_readable($self->{name});
56             }
57              
58             sub writable {
59             my ( $self ) = @_;
60             return is_writable($self->{name});
61             }
62              
63             sub mounted_on {
64             my ( $self ) = @_;
65             my $df = df();
66             for my $dev ( keys %{$df} ) {
67             return $dev if $df->{$dev}->{mounted_on} eq $self->{name};
68             };
69             return undef;
70             }
71              
72             sub content {
73             my ( $self ) = @_;
74             return cat($self->{name}) || undef;
75             }
76              
77             sub getvalue {
78             my ( $self, $key ) = @_;
79             return $self->$key;
80             }
81              
82             1;