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 117 118 119 120 121
|
use strict;
use warnings;
use FindBin;
BEGIN { require "$FindBin::Bin/test-helper-s3-client.pl" }
use Shared::Examples::Net::Amazon::S3::Client qw[ expect_client_bucket_create ];
plan tests => 11;
expect_client_bucket_create 'create bucket' => (
with_bucket => 'some-bucket',
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'create bucket in different region' => (
with_bucket => 'some-bucket',
with_region => 'ca-central-1',
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => fixture ('request::bucket_create_ca_central_1')->{content},
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'create bucket with deprecated acl_short' => (
with_bucket => 'some-bucket',
with_acl_short => 'private',
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_request_headers => { x_amz_acl => 'private' },
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'create bucket with canned acl' => (
with_bucket => 'some-bucket',
with_acl => Net::Amazon::S3::ACL::Canned->PRIVATE,
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_request_headers => { x_amz_acl => 'private' },
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'create bucket with canned acl coercion' => (
with_bucket => 'some-bucket',
with_acl => 'private',
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_request_headers => { x_amz_acl => 'private' },
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'create bucket with explicit acl' => (
with_bucket => 'some-bucket',
with_acl => Net::Amazon::S3::ACL::Set->new
->grant_read (id => '123', id => '234')
->grant_write (id => '345')
,
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_request_headers => {
x_amz_grant_read => 'id="123", id="234"',
x_amz_grant_write => 'id="345"',
},
expect_data => all (
obj_isa ('Net::Amazon::S3::Client::Bucket'),
methods (name => 'some-bucket'),
),
);
expect_client_bucket_create 'S3 error - Access Denied' => (
with_bucket => 'some-bucket',
with_response_fixture ('error::access_denied'),
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_s3_error_access_denied,
);
expect_client_bucket_create 'S3 error - Bucket Already Exists' => (
with_bucket => 'some-bucket',
with_response_fixture ('error::bucket_already_exists'),
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_request_content => '',
expect_s3_error_bucket_exists,
);
expect_client_bucket_create 'S3 error - Invalid Bucket Name' => (
with_bucket => 'some-bucket',
with_response_fixture ('error::invalid_bucket_name'),
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_s3_error_invalid_bucket_name,
);
expect_client_bucket_create 'HTTP error - 400 Bad Request' => (
with_bucket => 'some-bucket',
with_response_fixture ('error::http_bad_request'),
expect_request => { PUT => 'https://some-bucket.s3.amazonaws.com/' },
expect_http_error_bad_request,
);
had_no_warnings;
done_testing;
|