コード例 #1
0
 /**
  * @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);
 }