/** * @covers WindowsAzure\ServiceBus\Models\SubscriptionInfo::__construct */ public function testSubscriptionInfoConstructor() { // Setup $expected = 'testSubscriptionInfoName'; // Test $SubscriptionInfo = new SubscriptionInfo($expected); $actual = $SubscriptionInfo->getTitle(); // Assert $this->assertNotNull($SubscriptionInfo); $this->assertEquals($expected, $actual); }
/** * Creates a subscription with specified topic path and * subscription info. * * @link http://msdn.microsoft.com/en-us/library/windowsazure/hh780748 * * @param string $topicPath The path of * the topic. * @param SubscriptionInfo $subscriptionInfo The information * of the subscription. * * @return SubscriptionInfo */ public function createSubscription($topicPath, $subscriptionInfo) { $httpCallContext = new HttpCallContext(); $httpCallContext->setMethod(Resources::HTTP_PUT); $subscriptionPath = sprintf(Resources::SUBSCRIPTION_PATH, $topicPath, $subscriptionInfo->getTitle()); $httpCallContext->setPath($subscriptionPath); $httpCallContext->addHeader(Resources::CONTENT_TYPE, Resources::ATOM_ENTRY_CONTENT_TYPE); $httpCallContext->addStatusCode(Resources::STATUS_CREATED); $subscriptionDescriptionXml = XmlSerializer::objectSerialize($subscriptionInfo->getSubscriptionDescription(), 'SubscriptionDescription'); $entry = new Entry(); $content = new Content($subscriptionDescriptionXml); $content->setType(Resources::XML_CONTENT_TYPE); $entry->setContent($content); $entry->setAttribute(Resources::XMLNS, Resources::SERVICE_BUS_NAMESPACE); $xmlWriter = new \XMLWriter(); $xmlWriter->openMemory(); $entry->writeXml($xmlWriter); $httpCallContext->setBody($xmlWriter->outputMemory()); $response = $this->sendContext($httpCallContext); $subscriptionInfo = new SubscriptionInfo(); $subscriptionInfo->parseXml($response->getBody()); return $subscriptionInfo; }