/** * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::createQueue * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::deleteQueue * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::getQueueMetadata * @covers MicrosoftAzure\Storage\ServiceBus\ServiceBusRestProxy::setQueueMetadata */ private function setQueueMetadataWorker($options, $metadata) { self::println('Trying $options: ' . self::tmptostring($options) . ' and $metadata: ' . self::tmptostring($metadata)); $queue = QueueServiceFunctionalTestData::getInterestingQueueName(); // Make sure there is something to test $this->restProxy->createQueue($queue); try { // And put in some metadata if (is_null($options)) { $this->restProxy->setQueueMetadata($queue, $metadata); } else { $this->restProxy->setQueueMetadata($queue, $metadata, $options); } 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'); } $res = $this->restProxy->getQueueMetadata($queue); $this->verifyGetSetQueueMetadataWorker($res, $metadata); } catch (ServiceException $e) { if (!is_null($metadata) && count($metadata) > 0) { $keypart = array_keys($metadata); $keypart = $keypart[0]; if (substr($keypart, 0, 1) == '<') { $this->assertEquals(TestResources::STATUS_BAD_REQUEST, $e->getCode(), 'getCode'); } } else { if (!is_null($options->getTimeout()) && $options->getTimeout() < 1) { $this->assertEquals(TestResources::STATUS_INTERNAL_SERVER_ERROR, $e->getCode(), 'getCode'); } else { throw $e; } } } // Clean up. $this->restProxy->deleteQueue($queue); }