PageRenderTime 48ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 1ms

/tests/Zend/Service/Rackspace/Files/OfflineTest.php

https://github.com/shevron/zf2
PHP | 260 lines | 174 code | 34 blank | 52 comment | 2 complexity | 7cfaaf496ccc7f2a5e60e8a51286b4a3 MD5 | raw file
  1. <?php
  2. /**
  3. * Zend Framework (http://framework.zend.com/)
  4. *
  5. * @link http://github.com/zendframework/zf2 for the canonical source repository
  6. * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  7. * @license http://framework.zend.com/license/new-bsd New BSD License
  8. * @package Zend_Service
  9. */
  10. namespace ZendTest\Service\Rackspace\Files;
  11. use Zend\Service\Rackspace\Files as RackspaceFiles;
  12. use Zend\Service\Rackspace\Files\ContainerList;
  13. use Zend\Http\Client\Adapter\Test as HttpTest;
  14. /**
  15. * Test helper
  16. */
  17. /**
  18. * @category Zend
  19. * @package Zend\Service\Rackspace\Files
  20. * @subpackage UnitTests
  21. * @group Zend\Service
  22. * @group Zend\Service\Rackspace
  23. * @group Zend\Service\Rackspace\Files
  24. */
  25. class OfflineTest extends \PHPUnit_Framework_TestCase
  26. {
  27. /**
  28. * Reference to RackspaceFiles
  29. *
  30. * @var Zend\Service\Rackspace\Files
  31. */
  32. protected $rackspace;
  33. /**
  34. * HTTP client adapter for testing
  35. *
  36. * @var Zend\Http\Client\Adapter\Test
  37. */
  38. protected $httpClientAdapterTest;
  39. /**
  40. * Metadata for container/object test
  41. *
  42. * @var array
  43. */
  44. protected $metadata;
  45. /**
  46. * Another metadata for container/object test
  47. *
  48. * @var array
  49. */
  50. protected $metadata2;
  51. /**
  52. * Set up the test case
  53. *
  54. * @return void
  55. */
  56. public function setUp()
  57. {
  58. $this->rackspace = new RackspaceFiles('foo','bar');
  59. $this->httpClientAdapterTest = new HttpTest();
  60. $this->rackspace->getHttpClient()->setAdapter($this->httpClientAdapterTest);
  61. // authentication (from a file)
  62. $this->httpClientAdapterTest->setResponse(self::loadResponse('../../_files/testAuthenticate'));
  63. $this->assertTrue($this->rackspace->authenticate(),'Authentication failed');
  64. $this->metadata = array (
  65. 'foo' => 'bar',
  66. 'foo2' => 'bar2'
  67. );
  68. $this->metadata2 = array (
  69. 'hello' => 'world'
  70. );
  71. // load the HTTP response (from a file)
  72. $this->httpClientAdapterTest->setResponse($this->loadResponse($this->getName()));
  73. }
  74. /**
  75. * Utility method for returning a string HTTP response, which is loaded from a file
  76. *
  77. * @param string $name
  78. * @return string
  79. */
  80. protected function loadResponse($name)
  81. {
  82. return file_get_contents(__DIR__ . '/_files/' . $name . '.response');
  83. }
  84. public function testCreateContainer()
  85. {
  86. $container= $this->rackspace->createContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,$this->metadata);
  87. $this->assertTrue($container!==false);
  88. $this->assertEquals($container->getName(),TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  89. }
  90. public function testGetCountContainers()
  91. {
  92. $num= $this->rackspace->getCountContainers();
  93. $this->assertTrue($num>0);
  94. }
  95. public function testGetContainer()
  96. {
  97. $container= $this->rackspace->getContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  98. $this->assertTrue($container!==false);
  99. $this->assertEquals($container->getName(),TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  100. }
  101. public function testGetContainers()
  102. {
  103. $containers= $this->rackspace->getContainers();
  104. $this->assertTrue($containers!==false);
  105. $found=false;
  106. foreach ($containers as $container) {
  107. if ($container->getName()==TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME) {
  108. $found=true;
  109. break;
  110. }
  111. }
  112. $this->assertTrue($found);
  113. }
  114. public function testGetMetadataContainer()
  115. {
  116. $data= $this->rackspace->getMetadataContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  117. $this->assertTrue($data!==false);
  118. $this->assertEquals($data['name'],TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  119. $this->assertEquals($data['metadata'],$this->metadata);
  120. }
  121. public function testGetInfoAccount()
  122. {
  123. $data= $this->rackspace->getInfoAccount();
  124. $this->assertTrue($data!==false);
  125. $this->assertTrue($data['tot_containers']>0);
  126. }
  127. public function testStoreObject()
  128. {
  129. $content= 'This is a test!';
  130. $result= $this->rackspace->storeObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  131. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME,
  132. $content,
  133. $this->metadata);
  134. $this->assertTrue($result);
  135. }
  136. public function testGetObject()
  137. {
  138. $object= $this->rackspace->getObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  139. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME);
  140. $this->assertTrue($object!==false);
  141. $this->assertEquals($object->getName(),TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME);
  142. $this->assertEquals($object->getSize(),15);
  143. $this->assertEquals($object->getMetadata(),$this->metadata);
  144. }
  145. public function testCopyObject()
  146. {
  147. $result= $this->rackspace->copyObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  148. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME,
  149. TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  150. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME.'-copy');
  151. $this->assertTrue($result);
  152. }
  153. public function testGetObjects()
  154. {
  155. $objects= $this->rackspace->getObjects(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  156. $this->assertTrue($objects!==false);
  157. $this->assertEquals($objects[0]->getName(),TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME);
  158. $this->assertEquals($objects[1]->getName(),TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME.'-copy');
  159. }
  160. public function testGetSizeContainers()
  161. {
  162. $size= $this->rackspace->getSizeContainers();
  163. $this->assertTrue($size!==false);
  164. $this->assertTrue(is_int($size));
  165. }
  166. public function testGetCountObjects()
  167. {
  168. $count= $this->rackspace->getCountObjects();
  169. $this->assertTrue($count!==false);
  170. $this->assertTrue(is_int($count));
  171. }
  172. public function testSetMetadataObject()
  173. {
  174. $result= $this->rackspace->setMetadataObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  175. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME,
  176. $this->metadata2);
  177. $this->assertTrue($result);
  178. }
  179. public function testGetMetadataObject()
  180. {
  181. $data= $this->rackspace->getMetadataObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  182. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME);
  183. $this->assertTrue($data!==false);
  184. $this->assertEquals($data['metadata'],$this->metadata2);
  185. }
  186. public function testEnableCdnContainer()
  187. {
  188. $data= $this->rackspace->enableCdnContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME);
  189. $this->assertTrue($data!==false);
  190. $this->assertTrue(is_array($data));
  191. $this->assertTrue(!empty($data['cdn_uri']));
  192. $this->assertTrue(!empty($data['cdn_uri_ssl']));
  193. }
  194. public function testGetCdnContainers()
  195. {
  196. $containers= $this->rackspace->getCdnContainers();
  197. $this->assertTrue($containers!==false);
  198. $found= false;
  199. foreach ($containers as $container) {
  200. if ($container->getName()==TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME) {
  201. $found= true;
  202. break;
  203. }
  204. }
  205. $this->assertTrue($found);
  206. }
  207. public function testUpdateCdnContainer()
  208. {
  209. $data= $this->rackspace->updateCdnContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,null,false);
  210. $this->assertTrue($data!==false);
  211. }
  212. public function testDeleteObject()
  213. {
  214. $this->assertTrue($this->rackspace->deleteObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  215. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME));
  216. }
  217. public function testDeleteObject2()
  218. {
  219. $this->assertTrue($this->rackspace->deleteObject(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME,
  220. TESTS_ZEND_SERVICE_RACKSPACE_OBJECT_NAME.'-copy'));
  221. }
  222. public function testDeleteContainer()
  223. {
  224. $this->assertTrue($this->rackspace->deleteContainer(TESTS_ZEND_SERVICE_RACKSPACE_CONTAINER_NAME));
  225. }
  226. }