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 104 105 106 107 108 109 110 111 112 113 114 115 116
|
#!perl
use strict;
use warnings;
use FindBin;
BEGIN { require "$FindBin::Bin/test-helper-operation.pl" }
expect_operation_object_upload_create (
'Client / named arguments' => \& client_object_upload_create_named_arguments,
'Client / configuration hash' => \& client_object_upload_create_configuration_hash,
);
had_no_warnings;
done_testing;
sub client_object_upload_create_named_arguments {
my (%args) = @_;
build_default_client_bucket (%args)
->object (
key => delete $args{key},
(exists $args{encryption} ? (encryption => delete $args{encryption}) : ()),
(exists $args{object_acl} ? (acl => delete $args{object_acl}) : ()),
)
->initiate_multipart_upload (%args)
;
}
sub client_object_upload_create_configuration_hash {
my (%args) = @_;
build_default_client_bucket (%args)
->object (
key => delete $args{key},
(exists $args{encryption} ? (encryption => delete $args{encryption}) : ()),
(exists $args{object_acl} ? (acl => delete $args{object_acl}) : ()),
)
->initiate_multipart_upload (\ %args)
;
}
sub expect_operation_object_upload_create {
expect_operation_plan
implementations => +{ @_ },
expect_operation => 'Net::Amazon::S3::Operation::Object::Upload::Create',
plan => {
"create upload with object acl" => {
act_arguments => [
bucket => 'bucket-name',
key => 'some-key',
object_acl => 'private',
],
expect_arguments => {
bucket => 'bucket-name',
key => 'some-key',
encryption => undef,
acl => obj_isa ('Net::Amazon::S3::ACL::Canned'),
},
},
"create upload with overloaded acl" => {
act_arguments => [
bucket => 'bucket-name',
key => 'some-key',
acl => 'private',
],
expect_arguments => {
bucket => 'bucket-name',
key => 'some-key',
encryption => undef,
acl => 'private',
},
},
"create upload with acl_short" => {
act_arguments => [
bucket => 'bucket-name',
key => 'some-key',
acl_short => 'private',
],
expect_arguments => {
bucket => 'bucket-name',
key => 'some-key',
encryption => undef,
acl => 'private',
},
},
"create upload with additional headers" => {
act_arguments => [
bucket => 'bucket-name',
key => 'some-key',
headers => { x_amz_meta_additional => 'additional-header' },
],
expect_arguments => {
bucket => 'bucket-name',
key => 'some-key',
encryption => undef,
headers => { x_amz_meta_additional => 'additional-header' },
},
},
"create upload with server-side encoding" => {
act_arguments => [
bucket => 'bucket-name',
key => 'some-key',
encryption => 'AES256',
],
expect_arguments => {
bucket => 'bucket-name',
key => 'some-key',
encryption => 'AES256',
},
},
}
}
|