public function listContainers($containerPrefix = null) { $result = array(); $opts = new ListContainersOptions(); if (!is_null($containerPrefix)) { $opts->setPrefix($containerPrefix); } $list = $this->restProxy->listContainers($opts); foreach ($list->getContainers() as $item) { array_push($result, $item->getName()); } return $result; }
/** * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::createContainer * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::deleteContainer * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::listContainers */ private function deleteContainerWorker($options) { $container = BlobServiceFunctionalTestData::getInterestingContainerName(); // Make sure there is something to delete. $this->restProxy->createContainer($container); // Make sure that the list of all applicable containers is correctly updated. $opts = new ListContainersOptions(); $opts->setPrefix(BlobServiceFunctionalTestData::$testUniqueId); $qs = $this->restProxy->listContainers($opts); $this->assertEquals(count($qs->getContainers()), count(BlobServiceFunctionalTestData::$testContainerNames) + 1, 'After adding one, with Prefix=(\'' . BlobServiceFunctionalTestData::$testUniqueId . '\'), then Containers length'); $deleted = false; try { if (is_null($options)) { $this->restProxy->deleteContainer($container); } else { $this->restProxy->deleteContainer($container, $options); } $deleted = true; if (is_null($options)) { $options = new DeleteContainerOptions(); } if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) { $this->assertTrue(false, 'Expect negative timeouts in $options to throw'); } if (!$this->isEmulated() && !BlobServiceFunctionalTestData::passTemporalAccessCondition($options->getAccessCondition())) { $this->assertTrue(false, 'Failing access condition should throw'); } // Make sure that the list of all applicable containers is correctly updated. $opts = new ListContainersOptions(); $opts->setPrefix(BlobServiceFunctionalTestData::$testUniqueId); $qs = $this->restProxy->listContainers($opts); $this->assertEquals(count($qs->getContainers()), count(BlobServiceFunctionalTestData::$testContainerNames), 'After adding then deleting one, with Prefix=(\'' . BlobServiceFunctionalTestData::$testUniqueId . '\'), then Containers length'); // Nothing else interesting to check for the $options. } catch (ServiceException $e) { if (is_null($options)) { $options = new DeleteContainerOptions(); } if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) { $this->assertEquals(TestResources::STATUS_INTERNAL_SERVER_ERROR, $e->getCode(), 'getCode'); } else { if (!$this->isEmulated() && !BlobServiceFunctionalTestData::passTemporalAccessCondition($options->getAccessCondition())) { $this->assertEquals(TestResources::STATUS_PRECONDITION_FAILED, $e->getCode(), 'getCode'); } else { throw $e; } } } if (!$deleted) { // Try again. If it does not work, not much else to try. $this->restProxy->deleteContainer($container); } }
public static function getInterestingListContainersOptions() { $ret = array(); $options = new ListContainersOptions(); array_push($ret, $options); $options = new ListContainersOptions(); $marker = '/' . self::$_accountName . '/' . self::$testContainerNames[1]; $options->setMarker($marker); array_push($ret, $options); $options = new ListContainersOptions(); $marker = '/' . self::$_accountName . '/' . self::$nonExistContainerPrefix; $options->setMarker($marker); array_push($ret, $options); $options = new ListContainersOptions(); $maxResults = 2; $options->setMaxResults($maxResults); array_push($ret, $options); $options = new ListContainersOptions(); $prefix = self::$testUniqueId; $options->setPrefix($prefix); array_push($ret, $options); $options = new ListContainersOptions(); $prefix = self::$nonExistContainerPrefix; $options->setPrefix($prefix); array_push($ret, $options); $options = new ListContainersOptions(); $prefix = self::$testContainerNames[1]; $options->setPrefix($prefix); array_push($ret, $options); $options = new ListContainersOptions(); $timeout = -1; $options->setTimeout($timeout); array_push($ret, $options); $options = new ListContainersOptions(); $timeout = 60; $options->setTimeout($timeout); array_push($ret, $options); $options = new ListContainersOptions(); $includeMetadata = true; $options->setIncludeMetadata($includeMetadata); array_push($ret, $options); $options = new ListContainersOptions(); $marker = '/' . self::$_accountName . '/' . self::$testContainerNames[1]; $maxResults = 2; $prefix = self::$testUniqueId; $timeout = 60; $includeMetadata = true; $options->setMarker($marker); $options->setMaxResults($maxResults); $options->setPrefix($prefix); $options->setTimeout($timeout); $options->setIncludeMetadata($includeMetadata); array_push($ret, $options); return $ret; }
/** * @covers MicrosoftAzure\Storage\Blob\Models\ListContainersOptions::getIncludeMetadata */ public function testGetIncludeMetadata() { // Setup $options = new ListContainersOptions(); $expected = true; $options->setIncludeMetadata($expected); // Test $actual = $options->getIncludeMetadata(); // Assert $this->assertEquals($expected, $actual); }
/** * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::listContainers */ public function testListContainersWithPrefixWorks() { // Act $opts = new ListContainersOptions(); $opts->setPrefix(self::$_testContainersPrefix); $opts->setMaxResults(3); $results = $this->restProxy->listContainers($opts); // Assert $this->assertNotNull($results, '$results'); $this->assertEquals(3, count($results->getContainers()), 'count($results->getContainers())'); $this->assertNotNull($results->getNextMarker(), '$results->getNextMarker()'); $this->assertEquals(3, $results->getMaxResults(), '$results->getMaxResults()'); // Act $opts = new ListContainersOptions(); $opts->setPrefix(self::$_testContainersPrefix); $opts->setMarker($results->getNextMarker()); $results2 = $this->restProxy->listContainers($opts); // Assert $this->assertNotNull($results2, '$results2'); $this->assertNull($results2->getNextMarker(), '$results2->getNextMarker()'); $this->assertEquals(0, $results2->getMaxResults(), '$results2->getMaxResults()'); // Act $opts = new ListContainersOptions(); $opts->setPrefix(self::$_testContainersPrefix); $results3 = $this->restProxy->listContainers($opts); // Assert $this->assertEquals(count($results->getContainers()) + count($results2->getContainers()), count($results3->getContainers()), 'count($results3->getContainers())'); }
/** * @covers MicrosoftAzure\Storage\Blob\BlobRestProxy::createContainer */ public function testCreateContainerWithMetadata() { $containerName = 'createcontainerwithmetadata' . $this->createSuffix(); $metadataName = 'Name'; $metadataValue = 'MyName'; $options = new CreateContainerOptions(); $options->addMetadata($metadataName, $metadataValue); $options->setPublicAccess('blob'); // Test $this->createContainer($containerName, $options); // Assert $options = new ListContainersOptions(); $options->setIncludeMetadata(true); $result = $this->restProxy->listContainers($options); $containers = $result->getContainers(); $metadata = $containers[0]->getMetadata(); $this->assertEquals($metadataValue, $metadata[$metadataName]); }
/** * Lists all of the containers in the given storage account. * * @param Models\ListContainersOptions $options The optional parameters. * * @return MicrosoftAzure\Storage\Blob\Models\ListContainersResult * * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx */ public function listContainers($options = null) { $method = Resources::HTTP_GET; $headers = array(); $queryParams = array(); $postParams = array(); $path = Resources::EMPTY_STRING; $statusCode = Resources::STATUS_OK; if (is_null($options)) { $options = new ListContainersOptions(); } $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout()); $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'list'); $this->addOptionalQueryParam($queryParams, Resources::QP_PREFIX, $options->getPrefix()); $this->addOptionalQueryParam($queryParams, Resources::QP_MARKER, $options->getMarker()); $this->addOptionalQueryParam($queryParams, Resources::QP_MAX_RESULTS, $options->getMaxResults()); $isInclude = $options->getIncludeMetadata(); $isInclude = $isInclude ? 'metadata' : null; $this->addOptionalQueryParam($queryParams, Resources::QP_INCLUDE, $isInclude); $response = $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode); $parsed = $this->dataSerializer->unserialize($response->getBody()); return ListContainersResult::create($parsed); }