ListObjectVersionsResultTest.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. namespace OSS\Tests;
  3. use OSS\Result\ListObjectVersionsResult;
  4. use OSS\Core\OssException;
  5. use OSS\Http\ResponseCore;
  6. class ListObjectVersionsResultTest extends \PHPUnit\Framework\TestCase
  7. {
  8. private $validXml = <<<BBBB
  9. <?xml version="1.0" ?>
  10. <ListVersionsResult>
  11. <Name>oss-example</Name>
  12. <Prefix></Prefix>
  13. <KeyMarker>example</KeyMarker>
  14. <VersionIdMarker>CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****</VersionIdMarker>
  15. <MaxKeys>100</MaxKeys>
  16. <Delimiter></Delimiter>
  17. <IsTruncated>false</IsTruncated>
  18. <DeleteMarker>
  19. <Key>example</Key>
  20. <VersionId>CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****</VersionId>
  21. <IsLatest>false</IsLatest>
  22. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  23. <Owner>
  24. <ID>1234512528586****</ID>
  25. <DisplayName>12345125285864390</DisplayName>
  26. </Owner>
  27. </DeleteMarker>
  28. <Version>
  29. <Key>example</Key>
  30. <VersionId>CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****</VersionId>
  31. <IsLatest>false</IsLatest>
  32. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  33. <ETag>"250F8A0AE989679A22926A875F0A2****"</ETag>
  34. <Type>Normal</Type>
  35. <Size>93731</Size>
  36. <StorageClass>Standard</StorageClass>
  37. <Owner>
  38. <ID>1234512528586****</ID>
  39. <DisplayName>12345125285864390</DisplayName>
  40. </Owner>
  41. </Version>
  42. <Version>
  43. <Key>pic.jpg</Key>
  44. <VersionId>CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****</VersionId>
  45. <IsLatest>true</IsLatest>
  46. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  47. <ETag>"3663F7B0B9D3153F884C821E7CF4****"</ETag>
  48. <Type>Normal</Type>
  49. <Size>574768</Size>
  50. <StorageClass>IA</StorageClass>
  51. <Owner>
  52. <ID>1234512528586****</ID>
  53. <DisplayName>12345125285864390</DisplayName>
  54. </Owner>
  55. </Version>
  56. </ListVersionsResult>
  57. BBBB;
  58. private $validXml1 = <<<BBBB
  59. <?xml version="1.0" ?>
  60. <ListVersionsResult>
  61. <Name>oss-example</Name>
  62. <Prefix></Prefix>
  63. <KeyMarker>example</KeyMarker>
  64. <VersionIdMarker>CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****</VersionIdMarker>
  65. <MaxKeys>100</MaxKeys>
  66. <Delimiter></Delimiter>
  67. <IsTruncated>false</IsTruncated>
  68. <DeleteMarker>
  69. <Key>example</Key>
  70. <VersionId>CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****</VersionId>
  71. <IsLatest>true</IsLatest>
  72. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  73. <Owner>
  74. <ID>1234512528586****</ID>
  75. <DisplayName>12345125285864390</DisplayName>
  76. </Owner>
  77. </DeleteMarker>
  78. <DeleteMarker>
  79. <Key>example-1</Key>
  80. <VersionId>CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****</VersionId>
  81. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  82. <Owner>
  83. <ID>1234512528586****</ID>
  84. <DisplayName>12345125285864390</DisplayName>
  85. </Owner>
  86. </DeleteMarker>
  87. <Version>
  88. <Key>example-2</Key>
  89. <VersionId>CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****</VersionId>
  90. <LastModified>2019-04-09T07:27:28.000Z</LastModified>
  91. <ETag>"250F8A0AE989679A22926A875F0A2****"</ETag>
  92. <Type>Normal</Type>
  93. <Size>93731</Size>
  94. <StorageClass>Standard</StorageClass>
  95. <Owner>
  96. <ID>1234512528586****</ID>
  97. <DisplayName>12345125285864390</DisplayName>
  98. </Owner>
  99. </Version>
  100. </ListVersionsResult>
  101. BBBB;
  102. private $invalidXml = <<<BBBB
  103. <?xml version="1.0" ?>
  104. <ListVersionsResult>
  105. </ListVersionsResult>
  106. BBBB;
  107. public function testParseValidXml()
  108. {
  109. $response = new ResponseCore(array(), $this->validXml, 200);
  110. $result = new ListObjectVersionsResult($response);
  111. $this->assertTrue($result->isOK());
  112. $this->assertNotNull($result->getData());
  113. $this->assertNotNull($result->getRawResponse());
  114. $list = $result->getData();
  115. $this->assertEquals(0, count($list->getPrefixList()));
  116. $this->assertEquals(1, count($list->getDeleteMarkerList()));
  117. $this->assertEquals(2, count($list->getObjectVersionList()));
  118. $this->assertEquals('oss-example', $list->getBucketName());
  119. $this->assertEquals('', $list->getPrefix());
  120. $this->assertEquals('example', $list->getKeyMarker());
  121. $this->assertEquals('CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****', $list->getVersionIdMarker());
  122. $this->assertEquals(100, $list->getMaxKeys());
  123. $this->assertEquals('', $list->getDelimiter());
  124. $this->assertEquals('false', $list->getIsTruncated());
  125. $deleteMarkerList = $list->getDeleteMarkerList();
  126. $this->assertEquals('example', $deleteMarkerList[0]->getKey());
  127. $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[0]->getVersionId());
  128. $this->assertEquals('false', $deleteMarkerList[0]->getIsLatest());
  129. $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[0]->getLastModified());
  130. $objectVersionList = $list->getObjectVersionList();
  131. $this->assertEquals('example', $objectVersionList[0]->getKey());
  132. $this->assertEquals('CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****', $objectVersionList[0]->getVersionId());
  133. $this->assertEquals('false', $objectVersionList[0]->getIsLatest());
  134. $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[0]->getLastModified());
  135. $this->assertEquals('"250F8A0AE989679A22926A875F0A2****"', $objectVersionList[0]->getETag());
  136. $this->assertEquals('Normal', $objectVersionList[0]->getType());
  137. $this->assertEquals(93731, $objectVersionList[0]->getSize());
  138. $this->assertEquals('Standard', $objectVersionList[0]->getStorageClass());
  139. $this->assertEquals('pic.jpg', $objectVersionList[1]->getKey());
  140. $this->assertEquals('CAEQMxiBgMCZov2D0BYiIDY4MDllOTc2YmY5MjQxMzdiOGI3OTlhNTU0ODIx****', $objectVersionList[1]->getVersionId());
  141. $this->assertEquals('true', $objectVersionList[1]->getIsLatest());
  142. $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[1]->getLastModified());
  143. $this->assertEquals('"3663F7B0B9D3153F884C821E7CF4****"', $objectVersionList[1]->getETag());
  144. $this->assertEquals('Normal', $objectVersionList[1]->getType());
  145. $this->assertEquals(574768, $objectVersionList[1]->getSize());
  146. $this->assertEquals('IA', $objectVersionList[1]->getStorageClass());
  147. $response = new ResponseCore(array(), $this->validXml1, 200);
  148. $result = new ListObjectVersionsResult($response);
  149. $this->assertTrue($result->isOK());
  150. $this->assertNotNull($result->getData());
  151. $this->assertNotNull($result->getRawResponse());
  152. $list = $result->getData();
  153. $this->assertEquals(0, count($list->getPrefixList()));
  154. $this->assertEquals(2, count($list->getDeleteMarkerList()));
  155. $this->assertEquals(1, count($list->getObjectVersionList()));
  156. $this->assertEquals('oss-example', $list->getBucketName());
  157. $this->assertEquals('', $list->getPrefix());
  158. $this->assertEquals('example', $list->getKeyMarker());
  159. $this->assertEquals('CAEQMxiBgICbof2D0BYiIGRhZjgwMzJiMjA3MjQ0ODE5MWYxZDYwMzJlZjU1****', $list->getVersionIdMarker());
  160. $this->assertEquals(100, $list->getMaxKeys());
  161. $this->assertEquals('', $list->getDelimiter());
  162. $this->assertEquals('false', $list->getIsTruncated());
  163. $deleteMarkerList = $list->getDeleteMarkerList();
  164. $this->assertEquals('example', $deleteMarkerList[0]->getKey());
  165. $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[0]->getVersionId());
  166. $this->assertEquals('true', $deleteMarkerList[0]->getIsLatest());
  167. $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[0]->getLastModified());
  168. $this->assertEquals('example-1', $deleteMarkerList[1]->getKey());
  169. $this->assertEquals('CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****', $deleteMarkerList[1]->getVersionId());
  170. $this->assertEquals('', $deleteMarkerList[1]->getIsLatest());
  171. $this->assertEquals('2019-04-09T07:27:28.000Z', $deleteMarkerList[1]->getLastModified());
  172. $objectVersionList = $list->getObjectVersionList();
  173. $this->assertEquals('example-2', $objectVersionList[0]->getKey());
  174. $this->assertEquals('CAEQMxiBgMDNoP2D0BYiIDE3MWUxNzgxZDQxNTRiODI5OGYwZGMwNGY3MzZjN****', $objectVersionList[0]->getVersionId());
  175. $this->assertEquals('', $objectVersionList[0]->getIsLatest());
  176. $this->assertEquals('2019-04-09T07:27:28.000Z', $objectVersionList[0]->getLastModified());
  177. $this->assertEquals('"250F8A0AE989679A22926A875F0A2****"', $objectVersionList[0]->getETag());
  178. $this->assertEquals('Normal', $objectVersionList[0]->getType());
  179. $this->assertEquals(93731, $objectVersionList[0]->getSize());
  180. $this->assertEquals('Standard', $objectVersionList[0]->getStorageClass());
  181. }
  182. public function testParseNullXml()
  183. {
  184. $response = new ResponseCore(array(), "", 200);
  185. $result = new ListObjectVersionsResult($response);
  186. $list = $result->getData();
  187. $this->assertTrue(true);
  188. }
  189. public function testParseInvalidXml()
  190. {
  191. $response = new ResponseCore(array(), $this->invalidXml, 200);
  192. $result = new ListObjectVersionsResult($response);
  193. $stat = $result->getData();
  194. $this->assertTrue(true);
  195. }
  196. }