ListBucketsResultTest.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Core\OssException;
  4. use OSS\Http\ResponseCore;
  5. use OSS\Result\ListBucketsResult;
  6. class ListBucketsResultTest extends \PHPUnit\Framework\TestCase
  7. {
  8. private $validXml = <<<BBBB
  9. <?xml version="1.0" encoding="UTF-8"?>
  10. <ListAllMyBucketsResult>
  11. <Owner>
  12. <ID>ut_test_put_bucket</ID>
  13. <DisplayName>ut_test_put_bucket</DisplayName>
  14. </Owner>
  15. <Buckets>
  16. <Bucket>
  17. <Location>oss-cn-hangzhou-a</Location>
  18. <Name>xz02tphky6fjfiuc0</Name>
  19. <CreationDate>2014-05-15T11:18:32.000Z</CreationDate>
  20. </Bucket>
  21. <Bucket>
  22. <Location>oss-cn-hangzhou-a</Location>
  23. <Name>xz02tphky6fjfiuc1</Name>
  24. <CreationDate>2014-05-15T11:18:32.000Z</CreationDate>
  25. </Bucket>
  26. </Buckets>
  27. </ListAllMyBucketsResult>
  28. BBBB;
  29. private $nullXml = <<<BBBB
  30. <?xml version="1.0" encoding="UTF-8"?>
  31. <ListAllMyBucketsResult>
  32. <Owner>
  33. <ID>ut_test_put_bucket</ID>
  34. <DisplayName>ut_test_put_bucket</DisplayName>
  35. </Owner>
  36. <Buckets>
  37. </Buckets>
  38. </ListAllMyBucketsResult>
  39. BBBB;
  40. private $errorBody = <<< BBBB
  41. <?xml version="1.0" encoding="UTF-8"?>
  42. <Error>
  43. <Code>NoSuchBucket</Code>
  44. <Message>The specified bucket does not exist.</Message>
  45. <RequestId>566B870D207FB3044302EB0A</RequestId>
  46. <HostId>hello.oss-test.aliyun-inc.com</HostId>
  47. <BucketName>hello</BucketName>
  48. </Error>
  49. BBBB;
  50. private $xml = <<<BBBB
  51. <?xml version="1.0" encoding="UTF-8"?>
  52. <ListAllMyBucketsResult>
  53. <Owner>
  54. <ID>ut_test_put_bucket</ID>
  55. <DisplayName>ut_test_put_bucket</DisplayName>
  56. </Owner>
  57. <Buckets>
  58. <Bucket>
  59. <CreationDate>2015-12-17T18:12:43.000Z</CreationDate>
  60. <ExtranetEndpoint>oss-cn-shanghai.aliyuncs.com</ExtranetEndpoint>
  61. <IntranetEndpoint>oss-cn-shanghai-internal.aliyuncs.com</IntranetEndpoint>
  62. <Location>oss-cn-shanghai</Location>
  63. <Name>app-base-oss</Name>
  64. <Region>cn-shanghai</Region>
  65. <StorageClass>Standard</StorageClass>
  66. </Bucket>
  67. <Bucket>
  68. <CreationDate>2014-12-25T11:21:04.000Z</CreationDate>
  69. <ExtranetEndpoint>oss-cn-hangzhou.aliyuncs.com</ExtranetEndpoint>
  70. <IntranetEndpoint>oss-cn-hangzhou-internal.aliyuncs.com</IntranetEndpoint>
  71. <Location>oss-cn-hangzhou</Location>
  72. <Name>atestleo23</Name>
  73. <Region>cn-hangzhou</Region>
  74. <StorageClass>IA</StorageClass>
  75. </Bucket>
  76. <Bucket>
  77. <CreationDate>2014-12-25T11:21:04.000Z</CreationDate>
  78. <Location>oss-cn-hangzhou</Location>
  79. <Name>atestleo23</Name>
  80. </Bucket>
  81. </Buckets>
  82. </ListAllMyBucketsResult>
  83. BBBB;
  84. public function testParseValidXml()
  85. {
  86. $response = new ResponseCore(array(), $this->validXml, 200);
  87. $result = new ListBucketsResult($response);
  88. $this->assertTrue($result->isOK());
  89. $this->assertNotNull($result->getData());
  90. $this->assertNotNull($result->getRawResponse());
  91. $bucketListInfo = $result->getData();
  92. $this->assertEquals(2, count($bucketListInfo->getBucketList()));
  93. }
  94. public function testParseNullXml()
  95. {
  96. $response = new ResponseCore(array(), $this->nullXml, 200);
  97. $result = new ListBucketsResult($response);
  98. $this->assertTrue($result->isOK());
  99. $this->assertNotNull($result->getData());
  100. $this->assertNotNull($result->getRawResponse());
  101. $bucketListInfo = $result->getData();
  102. $this->assertEquals(0, count($bucketListInfo->getBucketList()));
  103. }
  104. public function test403()
  105. {
  106. $errorHeader = array(
  107. 'x-oss-request-id' => '1a2b-3c4d'
  108. );
  109. $response = new ResponseCore($errorHeader, $this->errorBody, 403);
  110. try {
  111. new ListBucketsResult($response);
  112. } catch (OssException $e) {
  113. $this->assertEquals(
  114. $e->getMessage(),
  115. 'NoSuchBucket: The specified bucket does not exist. RequestId: 1a2b-3c4d');
  116. $this->assertEquals($e->getHTTPStatus(), '403');
  117. $this->assertEquals($e->getRequestId(), '1a2b-3c4d');
  118. $this->assertEquals($e->getErrorCode(), 'NoSuchBucket');
  119. $this->assertEquals($e->getErrorMessage(), 'The specified bucket does not exist.');
  120. $this->assertEquals($e->getDetails(), $this->errorBody);
  121. }
  122. }
  123. public function testParseXml2()
  124. {
  125. $response = new ResponseCore(array(), $this->xml, 200);
  126. $result = new ListBucketsResult($response);
  127. $this->assertTrue($result->isOK());
  128. $this->assertNotNull($result->getData());
  129. $this->assertNotNull($result->getRawResponse());
  130. $bucketListInfo = $result->getData();
  131. $this->assertEquals(3, count($bucketListInfo->getBucketList()));
  132. $this->assertEquals("2015-12-17T18:12:43.000Z", $bucketListInfo->getBucketList()[0]->getCreateDate());
  133. $this->assertEquals("oss-cn-shanghai", $bucketListInfo->getBucketList()[0]->getLocation());
  134. $this->assertEquals("app-base-oss", $bucketListInfo->getBucketList()[0]->getName());
  135. $this->assertEquals("oss-cn-shanghai.aliyuncs.com", $bucketListInfo->getBucketList()[0]->getExtranetEndpoint());
  136. $this->assertEquals("oss-cn-shanghai-internal.aliyuncs.com", $bucketListInfo->getBucketList()[0]->getIntranetEndpoint());
  137. $this->assertEquals("cn-shanghai", $bucketListInfo->getBucketList()[0]->getRegion());
  138. $this->assertEquals("Standard", $bucketListInfo->getBucketList()[0]->getStorageClass());
  139. $this->assertEquals("2014-12-25T11:21:04.000Z", $bucketListInfo->getBucketList()[1]->getCreateDate());
  140. $this->assertEquals("oss-cn-hangzhou", $bucketListInfo->getBucketList()[1]->getLocation());
  141. $this->assertEquals("atestleo23", $bucketListInfo->getBucketList()[1]->getName());
  142. $this->assertEquals("oss-cn-hangzhou.aliyuncs.com", $bucketListInfo->getBucketList()[1]->getExtranetEndpoint());
  143. $this->assertEquals("oss-cn-hangzhou-internal.aliyuncs.com", $bucketListInfo->getBucketList()[1]->getIntranetEndpoint());
  144. $this->assertEquals("cn-hangzhou", $bucketListInfo->getBucketList()[1]->getRegion());
  145. $this->assertEquals("IA", $bucketListInfo->getBucketList()[1]->getStorageClass());
  146. $this->assertEquals("2014-12-25T11:21:04.000Z", $bucketListInfo->getBucketList()[2]->getCreateDate());
  147. $this->assertEquals("oss-cn-hangzhou", $bucketListInfo->getBucketList()[2]->getLocation());
  148. $this->assertEquals("atestleo23", $bucketListInfo->getBucketList()[2]->getName());
  149. $this->assertEquals(null, $bucketListInfo->getBucketList()[2]->getExtranetEndpoint());
  150. $this->assertEquals(null, $bucketListInfo->getBucketList()[2]->getIntranetEndpoint());
  151. $this->assertEquals(null, $bucketListInfo->getBucketList()[2]->getRegion());
  152. $this->assertEquals(null, $bucketListInfo->getBucketList()[2]->getStorageClass());
  153. }
  154. }