/**
  * Lists all queues in the storage account.
  * 
  * @param ListQueuesOptions $options The optional list queue options.
  * 
  * @return MicrosoftAzure\Storage\Queue\Models\ListQueuesResult
  */
 public function listQueues($options = null)
 {
     $method = Resources::HTTP_GET;
     $headers = array();
     $postParams = array();
     $queryParams = array();
     $path = Resources::EMPTY_STRING;
     $statusCode = Resources::STATUS_OK;
     if (is_null($options)) {
         $options = new ListQueuesOptions();
     }
     $timeout = $options->getTimeout();
     $maxResults = $options->getMaxResults();
     $include = $options->getIncludeMetadata();
     $include = $include ? 'metadata' : null;
     $prefix = $options->getPrefix();
     $marker = $options->getMarker();
     $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $timeout);
     $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, 'list');
     $this->addOptionalQueryParam($queryParams, Resources::QP_PREFIX, $prefix);
     $this->addOptionalQueryParam($queryParams, Resources::QP_MARKER, $marker);
     $this->addOptionalQueryParam($queryParams, Resources::QP_INCLUDE, $include);
     $this->addOptionalQueryParam($queryParams, Resources::QP_MAX_RESULTS, $maxResults);
     $response = $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode);
     $parsed = $this->dataSerializer->unserialize($response->getBody());
     return ListQueuesResult::create($parsed);
 }
 public function testCheckListQueuesOptions()
 {
     $options = new ListQueuesOptions();
     $this->assertNull($options->getIncludeMetadata(), 'Default ListQueuesOptions->getIncludeMetadata');
     $this->assertNull($options->getMarker(), 'Default ListQueuesOptions->getMarker');
     $this->assertEquals(0, $options->getMaxResults(), 'Default ListQueuesOptions->getMaxResults');
     $this->assertNull($options->getPrefix(), 'Default ListQueuesOptions->getPrefix');
     $this->assertNull($options->getTimeout(), 'Default ListQueuesOptions->getTimeout');
     $options->setIncludeMetadata(true);
     $options->setMarker('foo');
     $options->setMaxResults(-10);
     $options->setPrefix('bar');
     $options->setTimeout(self::INT_MAX_VALUE);
     $this->assertTrue($options->getIncludeMetadata(), 'Set ListQueuesOptions->getIncludeMetadata');
     $this->assertEquals('foo', $options->getMarker(), 'Set ListQueuesOptions->getMarker');
     $this->assertEquals(-10, $options->getMaxResults(), 'Set ListQueuesOptions->getMaxResults');
     $this->assertEquals('bar', $options->getPrefix(), 'Set ListQueuesOptions->getPrefix');
     $this->assertEquals(self::INT_MAX_VALUE, $options->getTimeout(), 'Set ListQueuesOptions->getTimeout');
 }
 /**
  * @covers MicrosoftAzure\Storage\Queue\Models\ListQueuesOptions::getIncludeMetadata
  */
 public function testGetIncludeMetadata()
 {
     // Setup
     $options = new ListQueuesOptions();
     $expected = true;
     $options->setIncludeMetadata($expected);
     // Test
     $actual = $options->getIncludeMetadata();
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::createQueue
  * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::deleteQueue
  * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::listQueues
  */
 private function deleteQueueWorker($options)
 {
     self::println('Trying $options: ' . self::tmptostring($options));
     $queue = QueueServiceFunctionalTestData::getInterestingQueueName();
     // Make sure there is something to delete.
     $this->restProxy->createQueue($queue);
     // Make sure that the list of all applicable queues is correctly updated.
     $opts = new ListQueuesOptions();
     $opts->setPrefix(QueueServiceFunctionalTestData::$testUniqueId);
     $qs = $this->restProxy->listQueues($opts);
     $this->assertEquals(count($qs->getQueues()), count(QueueServiceFunctionalTestData::$testQueueNames) + 1, 'After adding one, with Prefix=(\'' . QueueServiceFunctionalTestData::$testUniqueId . '\'), then Queues->length');
     $deleted = false;
     try {
         if (is_null($options)) {
             $this->restProxy->deleteQueue($queue);
         } else {
             $this->restProxy->deleteQueue($queue, $options);
         }
         $deleted = true;
         if (is_null($options)) {
             $options = new QueueServiceOptions();
         }
         if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) {
             $this->assertTrue(false, 'Expect negative timeouts in $options to throw');
         }
         // Make sure that the list of all applicable queues is correctly updated.
         $opts = new ListQueuesOptions();
         $opts->setPrefix(QueueServiceFunctionalTestData::$testUniqueId);
         $qs = $this->restProxy->listQueues($opts);
         $this->assertEquals(count($qs->getQueues()), count(QueueServiceFunctionalTestData::$testQueueNames), 'After adding then deleting one, with Prefix=(\'' . QueueServiceFunctionalTestData::$testUniqueId . '\'), then Queues->length');
         // Nothing else interesting to check for the options.
     } catch (ServiceException $e) {
         if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) {
             $this->assertEquals(TestResources::STATUS_INTERNAL_SERVER_ERROR, $e->getCode(), 'getCode');
         } else {
             throw $e;
         }
     }
     if (!$deleted) {
         // Try again. If it doesn't work, not much else to try.
         $this->restProxy->deleteQueue($queue);
     }
 }
 /**
  * @covers MicrosoftAzure\Storage\Queue\QueueRestProxy::listQueues
  */
 public function testListQueuesWithOptionsWorks()
 {
     // Arrange
     // Act
     $opts = new ListQueuesOptions();
     $opts->setMaxResults(3);
     $opts->setIncludeMetadata(true);
     $opts->setPrefix(self::$testQueuesPrefix);
     $result = $this->restProxy->listQueues($opts);
     $opts = new ListQueuesOptions();
     $opts->setMarker($result->getNextMarker());
     $opts->setIncludeMetadata(false);
     $opts->setPrefix(self::$testQueuesPrefix);
     $result2 = $this->restProxy->listQueues($opts);
     // Assert
     $this->assertNotNull($result, '$result');
     $this->assertNotNull($result->getQueues(), '$result->getQueues');
     $this->assertEquals(3, count($result->getQueues()), 'count($result->getQueues');
     $this->assertEquals(3, $result->getMaxResults(), '$result->getMaxResults');
     // TODO: Uncomment when the following issue is fixed:
     // https://github.com/azure/azure-storage-php/issues/98
     // $this->assertNotNull($result->getAccountName(), '$result->getAccountName()');
     $this->assertNull($result->getMarker(), '$result->getMarker');
     $queue0 = $result->getQueues();
     $queue0 = $queue0[0];
     $this->assertNotNull($queue0, '$queue0');
     $this->assertNotNull($queue0->getMetadata(), '$queue0->getMetadata' . ' (https://github.com/azure/azure-storage-php/issues/252)');
     $this->assertNotNull($queue0->getName(), '$queue0->getName');
     $this->assertNotNull($queue0->getUrl(), '$queue0->getUrl');
     $this->assertNotNull($result2, '$result2');
     $this->assertNotNull($result2->getQueues(), '$result2->getQueues');
     $this->assertTrue(count(self::$testQueues) - 3 <= count($result2->getQueues()), 'count');
     $this->assertEquals(0, $result2->getMaxResults(), '$result2->getMaxResults');
     // TODO: Uncomment when the following issue is fixed:
     // https://github.com/azure/azure-storage-php/issues/98
     // $this->assertNotNull($result2->getAccountName(), '$result2->getAccountName()');
     $this->assertEquals($result->getNextMarker(), $result2->getMarker(), '$result2->getMarker');
     $queue20 = $result2->getQueues();
     $queue20 = $queue20[0];
     $this->assertNotNull($queue20, '$queue20');
     $this->assertNotNull($queue20->getMetadata(), '$queue20->getMetadata');
     $this->assertEquals(0, count($queue20->getMetadata()), 'count($queue20->getMetadata)');
     $this->assertNotNull($queue20->getName(), '$queue20->getName');
     $this->assertNotNull($queue20->getUrl(), '$queue20->getUrl');
 }
 /**
  * @covers MicrosoftAzure\Storage\Queue\QueueRestProxy::createQueue
  */
 public function testCreateQueueWithMetadata()
 {
     $queueName = 'createqueuewithmetadata';
     $metadataName = 'Name';
     $metadataValue = 'MyName';
     $queueCreateOptions = new CreateQueueOptions();
     $queueCreateOptions->addMetadata($metadataName, $metadataValue);
     // Test
     $this->createQueue($queueName, $queueCreateOptions);
     // Assert
     $options = new ListQueuesOptions();
     $options->setIncludeMetadata(true);
     $result = $this->restProxy->listQueues($options);
     $queues = $result->getQueues();
     $metadata = $queues[0]->getMetadata();
     $this->assertEquals($metadataValue, $metadata[$metadataName]);
 }
 public static function getInterestingListQueuesOptions()
 {
     $ret = array();
     $options = new ListQueuesOptions();
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setMaxResults(2);
     $options->setMaxResults('2');
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setTimeout(10);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setTimeout(-10);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setPrefix(self::$nonExistQueuePrefix);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setPrefix(self::$testUniqueId);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     // Cannot set Marker to arbitrary values. Must only use if the previous request returns a NextMarker.
     //            $options->setMarker('abc');
     // So, add logic in listQueuesWorker to loop and setMarker if there is a NextMarker.
     $options->setMaxResults(2);
     $options->setPrefix(self::$testUniqueId);
     $options->setTimeout(10);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setMaxResults(3);
     $options->setPrefix(self::$testUniqueId);
     $options->setTimeout(10);
     array_push($ret, $options);
     $options = new ListQueuesOptions();
     $options->setMaxResults(4);
     $options->setPrefix(self::$testUniqueId);
     $options->setTimeout(10);
     array_push($ret, $options);
     return $ret;
 }