sub
construct {
my
$self
=
shift
;
my
$test_methods
= TestMethods::Base->new();
my
$test_dir
=
$test_methods
->make_test_dir();
MooseX::App::ParsedArgv->new(
argv
=> [
"archive"
] );
my
$test
= HPC::Runner::Command->new_with_command();
return
$test
;
}
sub
test_001 : Tags(use_batches) {
my
$cwd
= getcwd();
my
$test
= construct();
my
$test_dir
= getcwd();
make_path(
'exclude_this_dir'
);
make_path(
'include_this_dir'
);
make_path(
'.some_dot_dir'
);
my
$file
=
File::Spec->catdir(
'include_this_dir'
,
'include_this_file.txt'
);
write_file(
$file
,
'HELLO'
) or diag(
'We couldnt write the file'
);
ok( path(
$file
)->
exists
,
'File Exists'
);
$test
->exclude_paths( [
'exclude_this_dir'
] );
$test
->include_paths( [
'this_path_does_not_exist'
] );
my
$files
=
$test
->list_dirs;
is_deeply(
$files
,
[
path(
'.some_dot_dir'
), path(
'include_this_dir'
),
path(
'script'
), path(
'this_path_does_not_exist'
),
],
'exclude dirs excluded'
);
my
$exists
=
$test
->check_dirs_exist(
$files
);
is_deeply(
$exists
,
[ path(
'.some_dot_dir'
), path(
'include_this_dir'
), path(
'script'
), ],
,
'Only the dirs that exist!'
);
ok(1);
$test
->create_archive(
$exists
);
my
$tar
= Archive::Tar->new;
$tar
->
read
(
$test
->archive );
my
@tar_files
=
$tar
->list_files;
@tar_files
=
sort
(
@tar_files
);
@tar_files
=
map
{ path(
$_
) }
@tar_files
;
is_deeply(
\
@tar_files
,
[
path(
'.some_dot_dir'
), path(
'include_this_dir'
),
path(
$file
), path(
'script'
),
]
);
ok(
$tar
->contains_file(
$file
),
'Tar archive contains the file.'
);
my
$content
=
$tar
->get_content(
$file
);
is(
$content
,
'HELLO'
,
'Content is ok'
);
chdir
(
$Bin
);
remove_tree(
$test_dir
);
}
1;