Net-Amazon-S3

 view release on metacpan or  search on metacpan

t/s3-request-bucket-create.t  view on Meta::CPAN

#!perl

use strict;
use warnings;

use FindBin;
use lib $FindBin::Bin;

BEGIN { require 'test-helper-s3-request.pl' }

plan tests => 11;

sub h ($) {
	+{ 'Content-Length' => ignore, 'Content-Type' => ignore, %{ $_[0] } };
}

behaves_like_net_amazon_s3_request 'create bucket' => (
	request_class   => 'Net::Amazon::S3::Operation::Bucket::Create::Request',
	with_bucket     => 'some-bucket',

	expect_request_method   => 'PUT',
	expect_request_uri      => 'https://some-bucket.s3.amazonaws.com/',
	expect_request_headers  => h { },
	expect_request_content  => '',
);

behaves_like_net_amazon_s3_request 'create bucket with deprecated acl_short' => (
	request_class   => 'Net::Amazon::S3::Operation::Bucket::Create::Request',
	with_bucket     => 'some-bucket',
	with_acl_short  => 'private',

	expect_request_method   => 'PUT',
	expect_request_uri      => 'https://some-bucket.s3.amazonaws.com/',
	expect_request_headers  => h { 'x-amz-acl' => 'private' },
	expect_request_content  => '',
);

behaves_like_net_amazon_s3_request 'create bucket with canned acl' => (
	request_class   => 'Net::Amazon::S3::Operation::Bucket::Create::Request',
	with_bucket     => 'some-bucket',
	with_acl        => Net::Amazon::S3::ACL::Canned->PRIVATE,

	expect_request_method   => 'PUT',
	expect_request_uri      => 'https://some-bucket.s3.amazonaws.com/',
	expect_request_headers  => h { 'x-amz-acl' => 'private' },
	expect_request_content  => '',
);

behaves_like_net_amazon_s3_request 'create bucket with canned acl coercion' => (
	request_class   => 'Net::Amazon::S3::Operation::Bucket::Create::Request',
	with_bucket     => 'some-bucket',
	with_acl        => 'private',

	expect_request_method   => 'PUT',
	expect_request_uri      => 'https://some-bucket.s3.amazonaws.com/',
	expect_request_headers  => h { 'x-amz-acl' => 'private' },
	expect_request_content  => '',
);

behaves_like_net_amazon_s3_request 'create bucket with exact acl' => (
	request_class   => 'Net::Amazon::S3::Operation::Bucket::Create::Request',
	with_bucket     => 'some-bucket',
	with_acl        => Net::Amazon::S3::ACL::Set->new
		->grant_read (id => '123', id => '234')
		->grant_write (id => '345')
		,

	expect_request_method   => 'PUT',
	expect_request_uri      => 'https://some-bucket.s3.amazonaws.com/',
	expect_request_headers  => h {
		'x-amz-grant-read'  => 'id="123", id="234"',
		'x-amz-grant-write' => 'id="345"',
	},



( run in 1.896 second using v1.01-cache-2.11-cpan-4ab04211f4c )