You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.1 KiB
97 lines
3.1 KiB
<?php |
|
|
|
namespace OSS\Tests; |
|
|
|
use OSS\Core\OssException; |
|
use OSS\Http\ResponseCore; |
|
use OSS\Result\ListBucketsResult; |
|
|
|
class ListBucketsResultTest extends \PHPUnit_Framework_TestCase |
|
{ |
|
private $validXml = <<<BBBB |
|
<?xml version="1.0" encoding="UTF-8"?> |
|
<ListAllMyBucketsResult> |
|
<Owner> |
|
<ID>ut_test_put_bucket</ID> |
|
<DisplayName>ut_test_put_bucket</DisplayName> |
|
</Owner> |
|
<Buckets> |
|
<Bucket> |
|
<Location>oss-cn-hangzhou-a</Location> |
|
<Name>xz02tphky6fjfiuc0</Name> |
|
<CreationDate>2014-05-15T11:18:32.000Z</CreationDate> |
|
</Bucket> |
|
<Bucket> |
|
<Location>oss-cn-hangzhou-a</Location> |
|
<Name>xz02tphky6fjfiuc1</Name> |
|
<CreationDate>2014-05-15T11:18:32.000Z</CreationDate> |
|
</Bucket> |
|
</Buckets> |
|
</ListAllMyBucketsResult> |
|
BBBB; |
|
|
|
private $nullXml = <<<BBBB |
|
<?xml version="1.0" encoding="UTF-8"?> |
|
<ListAllMyBucketsResult> |
|
<Owner> |
|
<ID>ut_test_put_bucket</ID> |
|
<DisplayName>ut_test_put_bucket</DisplayName> |
|
</Owner> |
|
<Buckets> |
|
</Buckets> |
|
</ListAllMyBucketsResult> |
|
BBBB; |
|
|
|
public function testParseValidXml() |
|
{ |
|
$response = new ResponseCore(array(), $this->validXml, 200); |
|
$result = new ListBucketsResult($response); |
|
$this->assertTrue($result->isOK()); |
|
$this->assertNotNull($result->getData()); |
|
$this->assertNotNull($result->getRawResponse()); |
|
$bucketListInfo = $result->getData(); |
|
$this->assertEquals(2, count($bucketListInfo->getBucketList())); |
|
} |
|
|
|
public function testParseNullXml() |
|
{ |
|
$response = new ResponseCore(array(), $this->nullXml, 200); |
|
$result = new ListBucketsResult($response); |
|
$this->assertTrue($result->isOK()); |
|
$this->assertNotNull($result->getData()); |
|
$this->assertNotNull($result->getRawResponse()); |
|
$bucketListInfo = $result->getData(); |
|
$this->assertEquals(0, count($bucketListInfo->getBucketList())); |
|
} |
|
|
|
public function test403() |
|
{ |
|
$errorHeader = array( |
|
'x-oss-request-id' => '1a2b-3c4d' |
|
); |
|
|
|
$errorBody = <<< BBBB |
|
<?xml version="1.0" encoding="UTF-8"?> |
|
<Error> |
|
<Code>NoSuchBucket</Code> |
|
<Message>The specified bucket does not exist.</Message> |
|
<RequestId>566B870D207FB3044302EB0A</RequestId> |
|
<HostId>hello.oss-test.aliyun-inc.com</HostId> |
|
<BucketName>hello</BucketName> |
|
</Error> |
|
BBBB; |
|
$response = new ResponseCore($errorHeader, $errorBody, 403); |
|
try { |
|
new ListBucketsResult($response); |
|
} catch (OssException $e) { |
|
$this->assertEquals( |
|
$e->getMessage(), |
|
'NoSuchBucket: The specified bucket does not exist. RequestId: 1a2b-3c4d'); |
|
$this->assertEquals($e->getHTTPStatus(), '403'); |
|
$this->assertEquals($e->getRequestId(), '1a2b-3c4d'); |
|
$this->assertEquals($e->getErrorCode(), 'NoSuchBucket'); |
|
$this->assertEquals($e->getErrorMessage(), 'The specified bucket does not exist.'); |
|
$this->assertEquals($e->getDetails(), $errorBody); |
|
} |
|
} |
|
}
|
|
|