API-ISPManager
view release on metacpan or search on metacpan
t/02-files.t view on Meta::CPAN
# Çàãðóçêà ôàéëà
$now = time;
open my $fh, '>', $now or die "Can't open $now for writing: $!";
print {$fh} 'hello world';
close $fh;
my $upload_result = API::ISPManager::file::upload( {
%connection_params,
plid => '',
file => $now,
} );
@expected_file_list = @original_file_list;
push @expected_file_list, $now;
@real_file_list = get_file_list('', '');
ok(union_equal(\@expected_file_list, \@real_file_list), 'file upload');
API::ISPManager::file::delete( {
%connection_params,
elid => "$now",
plid => '',
} );
# Ðàñïàêîâêà àðõèâà
`tar -czf $now.tar.gz $now`;
API::ISPManager::file::upload( {
%connection_params,
plid => '',
file => "$now.tar.gz",
} );
my $extract_result = API::ISPManager::file::extract( {
%connection_params,
plid => '',
elid => "$now.tar.gz",
} );
@expected_file_list = @original_file_list;
push @expected_file_list, $now;
push @expected_file_list, "$now.tar.gz";
@real_file_list = get_file_list('', '');
ok(union_equal(\@expected_file_list, \@real_file_list), 'file extract');
API::ISPManager::file::delete( {
%connection_params,
elid => "$now",
plid => '',
} );
API::ISPManager::file::delete( {
%connection_params,
elid => "$now.tar.gz",
plid => '',
} );
unlink $now;
unlink "$now.tar.gz";
# Ïîëó÷åíèå ñïèñêà ôàéëîâ â âèäå ìàññèâà
sub get_file_list {
my ($plid, $elid) = @_;
my $answer = API::ISPManager::file::list( {
%connection_params,
plid => $plid,
elid => $elid,
} );
my @result;
if (ref($answer->{elem}) eq 'ARRAY') {
foreach my $elem (@{$answer->{elem}}) {
push @result, $elem->{name}->{content};
}
}
else {
push @result, $answer->{elem}->{name}->{content};
}
return @result;
}
# Ñðàâíåíèå äâóõ ìàññèâîâ êàê ìíîæåñòâ - ò.å. áåç ó÷åòà ïîðÿäêà ÷èñëà
# ýëåìåíòîâ è ÷èñëà èõ ïîâòîðåíèé
sub union_equal {
my ($a, $b) = @_;
return union_part_of($a, $b) && union_part_of($b, $a);
}
sub union_part_of {
my ($a, $b) = @_;
my $result = 1;
for (my $i = 0; $i < scalar @{$a} && $result; $i++) {
my $sub_result = 0;
for (my $j = 0; $j < scalar @{$b} && !$sub_result; $j++) {
$sub_result = $sub_result || ${$b}[$j] eq ${$a}[$i];
}
$result = $result && $sub_result;
}
return $result;
}
( run in 1.951 second using v1.01-cache-2.11-cpan-39bf76dae61 )