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

<?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);
}
}
}