public function setUp()
 {
     parent::setUp();
     $serviceBusWrapper = $this->builder->createServiceBusService(TestResources::getServiceBusConnectionString());
     $this->_createdTopics = array();
     $this->_createdSubscriptions = array();
     $this->_createdRules = array();
     $this->_createdQueues = array();
     parent::setProxy($serviceBusWrapper);
 }
 /**
  * @covers WindowsAzure\Common\Models\GetServicePropertiesResult::setValue
  */
 public function testSetValue()
 {
     // Setup
     $result = new GetServicePropertiesResult();
     $expected = ServiceProperties::create(TestResources::getServicePropertiesSample());
     // Test
     $result->setValue($expected);
     // Assert
     $this->assertEquals($expected, $result->getValue());
 }
 public static function setUpBeforeClass()
 {
     $storageKey = TestResources::accountKey();
     $storageName = TestResources::accountName();
     if (empty($storageKey)) {
         throw new \Exception('AZURE_STORAGE_KEY envionment variable is missing');
     }
     if (empty($storageName)) {
         throw new \Exception('AZURE_STORAGE_ACCOUNT envionment variable is missing');
     }
 }
 public function __construct()
 {
     $config = new Configuration();
     $blobUri = 'http://' . TestResources::accountName() . '.blob.core.windows.net';
     $config->setProperty(BlobSettings::ACCOUNT_KEY, TestResources::accountKey());
     $config->setProperty(BlobSettings::ACCOUNT_NAME, TestResources::accountName());
     $config->setProperty(BlobSettings::URI, $blobUri);
     $blobRestProxy = BlobService::create($config);
     parent::__construct($config, $blobRestProxy);
     $this->_createdContainers = array();
 }
 /**
  * @covers WindowsAzure\ServiceBus\Internal\WrapRestProxy::__construct
  * @covers WindowsAzure\ServiceBus\Internal\WrapRestProxy::wrapAccessToken
  */
 public function testWrapAccessToken()
 {
     $settings = ServiceBusSettings::createFromConnectionString(TestResources::getServiceBusConnectionString());
     $wrapUri = $settings->getWrapEndpointUri();
     $wrapUserName = $settings->getWrapName();
     $wrapPassword = $settings->getWrapPassword();
     $scope = str_replace('https', 'http', $settings->getServiceBusEndpointUri());
     $wrapAccessTokenResult = $this->_wrapRestProxy->wrapAccessToken($wrapUri, $wrapUserName, $wrapPassword, $scope);
     $this->assertNotNull($wrapAccessTokenResult);
     $this->assertNotNull($wrapAccessTokenResult->getAccessToken());
 }
 public function __construct()
 {
     $config = new Configuration();
     $queueUri = TestResources::accountName() . '.queue.core.windows.net';
     $config->setProperty(QueueSettings::ACCOUNT_KEY, TestResources::accountKey());
     $config->setProperty(QueueSettings::ACCOUNT_NAME, TestResources::accountName());
     $config->setProperty(QueueSettings::URI, $queueUri);
     $queueRestProxy = QueueService::create($config);
     parent::__construct($config, $queueRestProxy);
     $this->_createdQueues = array();
 }
 /**
  * @covers WindowsAzure\Common\Internal\Serialization\XmlSerializer::serialize
  * @covers WindowsAzure\Common\Internal\Serialization\XmlSerializer::_arr2xml
  */
 public function testSerialize()
 {
     // Setup
     $xmlSerializer = new XmlSerializer();
     $propertiesSample = TestResources::getServicePropertiesSample();
     $properties = ServiceProperties::create($propertiesSample);
     $expected = $properties->toXml($xmlSerializer);
     $array = $properties->toArray();
     $serializerProperties = array(XmlSerializer::ROOT_NAME => ServiceProperties::$xmlRootName);
     // Test
     $actual = $xmlSerializer->serialize($array, $serializerProperties);
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers WindowsAzure\Table\TableService::create
  */
 public function testCreateWithConfig()
 {
     // Setup
     $uri = 'http://' . TestResources::accountName() . '.table.core.windows.net';
     $config = new Configuration();
     $config->setProperty(TableSettings::ACCOUNT_KEY, TestResources::accountKey());
     $config->setProperty(TableSettings::ACCOUNT_NAME, TestResources::accountName());
     $config->setProperty(TableSettings::URI, $uri);
     // Test
     $tableRestProxy = TableService::create($config);
     // Assert
     $this->assertInstanceOf('WindowsAzure\\Table\\Internal\\ITable', $tableRestProxy);
 }
 public function __construct()
 {
     $config = new Configuration();
     $config->setProperty(ServiceManagementSettings::SUBSCRIPTION_ID, TestResources::serviceManagementSubscriptionId());
     $config->setProperty(ServiceManagementSettings::URI, Resources::SERVICE_MANAGEMENT_URL);
     $config->setProperty(ServiceManagementSettings::CERTIFICATE_PATH, TestResources::serviceManagementCertificatePath());
     $serviceManagementRestProxy = ServiceManagementService::create($config);
     parent::__construct($config, $serviceManagementRestProxy);
     $this->createdStorageServices = array();
     $this->createdAffinityGroups = array();
     $this->storageCount = count($this->restProxy->listStorageServices()->getStorageServices());
     $this->affinityGroupCount = count($this->restProxy->listAffinityGroups()->getAffinityGroups());
 }
 /**
  * @covers WindowsAzure\Queue\Models\WindowsAzureQueueMessage::createFromPeekMessages
  */
 public function testCreateFromPeekMessages()
 {
     // Setup
     $sample = TestResources::listMessagesSample();
     $sample = $sample['QueueMessage'];
     // Test
     $actual = WindowsAzureQueueMessage::createFromPeekMessages($sample);
     // Assert
     $this->assertEquals($sample['MessageId'], $actual->getMessageId());
     $this->assertEquals(Utilities::rfc1123ToDateTime($sample['InsertionTime']), $actual->getInsertionDate());
     $this->assertEquals(Utilities::rfc1123ToDateTime($sample['ExpirationTime']), $actual->getExpirationDate());
     $this->assertEquals(intval($sample['DequeueCount']), $actual->getDequeueCount());
     $this->assertEquals($sample['MessageText'], $actual->getMessageText());
 }
 /**
  * @covers WindowsAzure\Blob\Models\CreateBlobPagesResult::create
  */
 public function testCreate()
 {
     // Setup
     $sample = TestResources::listBlobsOneEntry();
     $expected = $sample['Blobs']['Blob']['Properties'];
     $expectedDate = Utilities::rfc1123ToDateTime($expected['Last-Modified']);
     // Test
     $actual = CreateBlobPagesResult::create($expected);
     // Assert
     $this->assertEquals($expectedDate, $actual->getLastModified());
     $this->assertEquals($expected['Etag'], $actual->getETag());
     $this->assertEquals($expected['Content-MD5'], $actual->getContentMD5());
     $this->assertEquals(intval($expected['x-ms-blob-sequence-number']), $actual->getSequenceNumber());
 }
 /**
  * @covers WindowsAzure\Blob\Models\ListBlobsResult::create 
  */
 public function testCreateWithMultipleEntries()
 {
     // Setup
     $sample = TestResources::listBlobsMultipleEntries();
     // Test
     $actual = ListBlobsResult::create($sample);
     // Assert
     $this->assertCount(2, $actual->getBlobs());
     $this->assertCount(2, $actual->getBlobPrefixes());
     $this->assertEquals($sample['Marker'], $actual->getMarker());
     $this->assertEquals(intval($sample['MaxResults']), $actual->getMaxResults());
     $this->assertEquals($sample['NextMarker'], $actual->getNextMarker());
     return $actual;
 }
 /**
  * @covers WindowsAzure\Common\Internal\Filters\WrapFilter::handleResponse
  */
 public function testHandleResponse()
 {
     // Setup
     $channel = new HttpClient();
     $url = new Url('http://microsoft.com');
     $channel->setUrl($url);
     $response = null;
     $settings = ServiceBusSettings::createFromConnectionString(TestResources::getServiceBusConnectionString());
     $wrapUri = $settings->getWrapEndpointUri();
     $wrapFilter = new WrapFilter($wrapUri, $settings->getWrapName(), $settings->getWrapPassword(), $this->_wrapRestProxy);
     // Test
     $response = $wrapFilter->handleResponse($channel, $response);
     // Assert
     $this->assertNull($response);
 }
 /**
  * @covers WindowsAzure\Common\Internal\OAuthRestProxy::getAccessToken
  * @covers WindowsAzure\Common\Internal\OAuthRestProxy::__construct
  */
 public function testGetAccessToken()
 {
     // Setup
     $channel = new HttpClient();
     $uri = Resources::MEDIA_SERVICES_OAUTH_URL;
     $connection = TestResources::getMediaServicesConnectionParameters();
     $settings = new MediaServicesSettings($connection['accountName'], $connection['accessKey']);
     $scope = Resources::MEDIA_SERVICES_OAUTH_SCOPE;
     // Test
     $proxy = new OAuthRestProxy($channel, $uri);
     $actual = $proxy->getAccessToken(Resources::OAUTH_GT_CLIENT_CREDENTIALS, $settings->getAccountName(), $settings->getAccessKey(), $scope);
     // Assert
     $this->assertNotNull($proxy);
     $this->assertNotNull($actual->getAccessToken());
     $this->assertGreaterThan(time(), $actual->getExpiresIn());
     $this->assertEquals($scope, $actual->getScope());
 }
 /**
  * @covers WindowsAzure\Queue\Models\ListQueuesResult::create 
  */
 public function testCreateWithMultipleEntries()
 {
     // Setup
     $sample = TestResources::listQueuesMultipleEntries();
     // Test
     $actual = ListQueuesResult::create($sample);
     // Assert
     $queues = $actual->getQueues();
     $this->assertCount(2, $queues);
     $this->assertEquals($sample['Queues']['Queue'][0]['Name'], $queues[0]->getName());
     $this->assertEquals($sample['Queues']['Queue'][0]['Url'], $queues[0]->getUrl());
     $this->assertEquals($sample['Queues']['Queue'][1]['Name'], $queues[1]->getName());
     $this->assertEquals($sample['Queues']['Queue'][1]['Url'], $queues[1]->getUrl());
     $this->assertEquals($sample['MaxResults'], $actual->getMaxResults());
     $this->assertEquals($sample['NextMarker'], $actual->getNextMarker());
     return $actual;
 }
 /**
  * @covers WindowsAzure\Blob\Models\ListContainersResult::create 
  */
 public function testCreateWithMultipleEntries()
 {
     // Setup
     $sample = TestResources::listContainersMultipleEntries();
     // Test
     $actual = ListContainersResult::create($sample);
     // Assert
     $containers = $actual->getContainers();
     $this->assertCount(2, $containers);
     $this->assertEquals($sample['Containers']['Container'][0]['Name'], $containers[0]->getName());
     $this->assertEquals($sample['Containers']['Container'][0]['Url'], $containers[0]->getUrl());
     $this->assertEquals(Utilities::rfc1123ToDateTime($sample['Containers']['Container'][0]['Properties']['Last-Modified']), $containers[0]->getProperties()->getLastModified());
     $this->assertEquals($sample['Containers']['Container'][0]['Properties']['Etag'], $containers[0]->getProperties()->getEtag());
     $this->assertEquals($sample['Containers']['Container'][1]['Name'], $containers[1]->getName());
     $this->assertEquals($sample['Containers']['Container'][1]['Url'], $containers[1]->getUrl());
     $this->assertEquals(Utilities::rfc1123ToDateTime($sample['Containers']['Container'][1]['Properties']['Last-Modified']), $containers[1]->getProperties()->getLastModified());
     $this->assertEquals($sample['Containers']['Container'][1]['Properties']['Etag'], $containers[1]->getProperties()->getEtag());
     $this->assertEquals($sample['MaxResults'], $actual->getMaxResults());
     $this->assertEquals($sample['NextMarker'], $actual->getNextMarker());
     return $actual;
 }
 /**
  * @covers WindowsAzure\Blob\Models\BlobProperties::create
  */
 public function testCreate()
 {
     // Setup
     $sample = TestResources::listBlobsOneEntry();
     $expected = $sample['Blobs']['Blob']['Properties'];
     $expectedDate = Utilities::rfc1123ToDateTime($expected['Last-Modified']);
     // Test
     $actual = BlobProperties::create($expected);
     // Assert
     $this->assertEquals($expectedDate, $actual->getLastModified());
     $this->assertEquals($expected['Etag'], $actual->getEtag());
     $this->assertEquals(intval($expected['Content-Length']), $actual->getContentLength());
     $this->assertEquals($expected['Content-Type'], $actual->getContentType());
     $this->assertEquals($expected['Content-Encoding'], $actual->getContentEncoding());
     $this->assertEquals($expected['Content-Language'], $actual->getContentLanguage());
     $this->assertEquals($expected['Content-MD5'], $actual->getContentMD5());
     $this->assertEquals($expected['Cache-Control'], $actual->getCacheControl());
     $this->assertEquals(intval($expected['x-ms-blob-sequence-number']), $actual->getSequenceNumber());
     $this->assertEquals($expected['BlobType'], $actual->getBlobType());
     $this->assertEquals($expected['LeaseStatus'], $actual->getLeaseStatus());
 }
 /**
  * @covers WindowsAzure\MediaServices\MediaServicesRestProxy::getAssetStorageAccount
  */
 public function testGetAssetStorageAccount()
 {
     // Setup
     $asset = new Asset(Asset::OPTIONS_NONE);
     $asset->setName(TestResources::MEDIA_SERVICES_ASSET_NAME . $this->createSuffix());
     $asset = $this->createAsset($asset);
     $connectionParameters = TestResources::getMediaServicesConnectionParameters();
     $storageAccountName = $connectionParameters['accountName'];
     // Test
     $result = $this->restProxy->getAssetStorageAccount($asset);
     // Assert
     $this->assertEquals($storageAccountName, $result->getName());
 }
 public function testIngestEncryptedAssetAndDecryptAtAzure()
 {
     // Setup
     $content = TestResources::MEDIA_SERVICES_DUMMY_FILE_CONTENT;
     $aesKey = Utilities::generateCryptoKey(32);
     $protectionKeyId = $this->restProxy->getProtectionKeyId(ProtectionKeyTypes::X509_CERTIFICATE_THUMBPRINT);
     $protectionKey = $this->restProxy->getProtectionKey($protectionKeyId);
     $contentKey = new ContentKey();
     $contentKey->setContentKey($aesKey, $protectionKey);
     $contentKey->setProtectionKeyId($protectionKeyId);
     $contentKey->setProtectionKeyType(ProtectionKeyTypes::X509_CERTIFICATE_THUMBPRINT);
     $contentKey->setContentKeyType(ContentKeyTypes::STORAGE_ENCRYPTION);
     $contentKey = $this->createContentKey($contentKey);
     $asset = new Asset(Asset::OPTIONS_STORAGE_ENCRYPTED);
     $asset->setName(TestResources::MEDIA_SERVICES_ASSET_NAME . $this->createSuffix());
     $asset = $this->createAsset($asset);
     $this->restProxy->linkContentKeyToAsset($asset, $contentKey);
     $initializationVector = Utilities::generateCryptoKey(8);
     $encrypted = Utilities::ctrCrypt($content, $aesKey, str_pad($initializationVector, 16, chr(0)));
     // Test
     $access = new AccessPolicy(TestResources::MEDIA_SERVICES_ACCESS_POLICY_NAME . $this->createSuffix());
     $access->setDurationInMinutes(30);
     $access->setPermissions(AccessPolicy::PERMISSIONS_WRITE);
     $access = $this->createAccessPolicy($access);
     $locator = new Locator($asset, $access, Locator::TYPE_SAS);
     $locator->setName(TestResources::MEDIA_SERVICES_LOCATOR_NAME . $this->createSuffix());
     $locator->setStartTime(new \DateTime('now -5 minutes'));
     $locator = $this->createLocator($locator);
     $fileName = TestResources::MEDIA_SERVICES_DUMMY_FILE_NAME;
     $this->restProxy->uploadAssetFile($locator, $fileName, $encrypted);
     $this->restProxy->createFileInfos($asset);
     $files = $this->restProxy->getAssetAssetFileList($asset);
     $files[0]->setIsEncrypted(true);
     $files[0]->setEncryptionKeyId($contentKey->getId());
     $files[0]->setEncryptionScheme(EncryptionSchemes::STORAGE_ENCRYPTION);
     $files[0]->setEncryptionVersion(Resources::MEDIA_SERVICES_ENCRYPTION_VERSION);
     $files[0]->setInitializationVector(Utilities::base256ToDec($initializationVector));
     $this->restProxy->updateAssetFile($files[0]);
     $decodeProcessor = $this->restProxy->getLatestMediaProcessor(TestResources::MEDIA_SERVICES_DECODE_PROCESSOR_NAME);
     $task = new Task(TestResources::getMediaServicesTask($this->getOutputAssetName()), $decodeProcessor->getId(), TaskOptions::NONE);
     $job = new Job();
     $job->setName(TestResources::MEDIA_SERVICES_JOB_NAME . $this->createSuffix());
     $job = $this->createJob($job, array($asset), array($task));
     $this->waitJobStatus($job, array(Job::STATE_FINISHED, Job::STATE_ERROR));
     $this->assertEquals($this->restProxy->getJobStatus($job), Job::STATE_FINISHED);
     $outputAssets = $this->restProxy->getJobOutputMediaAssets($job);
     $this->assertCount(1, $outputAssets);
     $accessPolicy = new AccessPolicy(TestResources::MEDIA_SERVICES_ACCESS_POLICY_NAME . $this->createSuffix());
     $accessPolicy->setDurationInMinutes(300);
     $accessPolicy->setPermissions(AccessPolicy::PERMISSIONS_READ);
     $accessPolicy = $this->createAccessPolicy($accessPolicy);
     $locator = new Locator($outputAssets[0], $accessPolicy, Locator::TYPE_SAS);
     $locator->setName(TestResources::MEDIA_SERVICES_LOCATOR_NAME . $this->createSuffix());
     $locator->setStartTime(new \DateTime('now -5 minutes'));
     $locator = $this->createLocator($locator);
     // without sleep() Locator hasn't enough time to create URL, so that's why we have to use at least sleep(30)
     sleep(40);
     $method = Resources::HTTP_GET;
     $url = new Url($locator->getBaseUri() . '/' . TestResources::MEDIA_SERVICES_DUMMY_FILE_NAME . $locator->getContentAccessComponent());
     $filters = array();
     $statusCode = Resources::STATUS_OK;
     $httpClient = new HttpClient();
     $httpClient->setMethod($method);
     $httpClient->setExpectedStatusCode($statusCode);
     $actual = $httpClient->send($filters, $url);
     $this->assertEquals($content, $actual);
 }
 /**
  * @covers WindowsAzure\Common\Models\OAuthAccessToken::getScope
  * @covers WindowsAzure\Common\Models\OAuthAccessToken::setScope
  */
 public function testGetSetScope()
 {
     // Setup
     $sample = TestResources::getTestOAuthAccessToken();
     // Test
     $actual = new OAuthAccessToken();
     $actual->setScope($sample[Resources::OAUTH_SCOPE]);
     // Assert
     $this->assertEquals($sample[Resources::OAUTH_SCOPE], $actual->getScope());
 }
 /**
  * @covers WindowsAzure\Blob\BlobRestProxy::setContainerAcl
  */
 public function testSetContainerAcl()
 {
     // Setup
     $name = 'setcontaineracl' . $this->createSuffix();
     $this->createContainer($name);
     $sample = TestResources::getContainerAclMultipleEntriesSample();
     $expectedETag = '0x8CAFB82EFF70C46';
     $expectedLastModified = new \DateTime('Sun, 25 Sep 2011 19:42:18 GMT');
     $expectedPublicAccess = 'container';
     $acl = ContainerAcl::create($expectedPublicAccess, $sample['SignedIdentifiers']);
     // Test
     $this->restProxy->setContainerAcl($name, $acl);
     // Assert
     $actual = $this->restProxy->getContainerAcl($name);
     $this->assertEquals($acl->getPublicAccess(), $actual->getContainerAcl()->getPublicAccess());
     $this->assertEquals($acl->getSignedIdentifiers(), $actual->getContainerAcl()->getSignedIdentifiers());
 }
 public function testParseEntities()
 {
     // Setup
     $atomSerializer = new AtomReaderWriter();
     $pk1 = '123';
     $pk2 = '124';
     $pk3 = '125';
     $e1 = TestResources::getTestEntity($pk1, '1');
     $e2 = TestResources::getTestEntity($pk2, '2');
     $e3 = TestResources::getTestEntity($pk3, '3');
     $e1->setETag('W/"datetime\'2012-05-17T00%3A59%3A32.1131734Z\'"');
     $e2->setETag('W/"datetime\'2012-05-17T00%3A59%3A32.4252358Z\'"');
     $e3->setETag('W/"datetime\'2012-05-17T00%3A59%3A32.7533014Z\'"');
     $e1->setTimestamp(Utilities::convertToDateTime('2012-05-17T00:59:32.0000473Z'));
     $e2->setTimestamp(Utilities::convertToDateTime('2012-05-17T00:59:32.0000473Z'));
     $e3->setTimestamp(Utilities::convertToDateTime('2012-05-17T00:59:32.0000473Z'));
     $expected = array($e1, $e2, $e3);
     $entitiesAtom = '<?xml version="1.0" encoding="utf-8" standalone="yes"?>
                     <feed xml:base="http://aogail2.table.core.windows.net/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
                     <title type="text">queryentitieswithmultipleentities</title>
                     <id>http://aogail2.table.core.windows.net/queryentitieswithmultipleentities</id>
                     <updated>2012-05-17T00:59:32Z</updated>
                     <link rel="self" title="queryentitieswithmultipleentities" href="queryentitieswithmultipleentities" />
                     <entry m:etag="W/&quot;datetime\'2012-05-17T00%3A59%3A32.1131734Z\'&quot;">
                         <id>http://aogail2.table.core.windows.net/queryentitieswithmultipleentities(PartitionKey=\'123\',RowKey=\'1\')</id>
                         <title type="text"></title>
                         <updated>2012-05-17T00:59:32Z</updated>
                         <author>
                         <name />
                         </author>
                         <link rel="edit" title="queryentitieswithmultipleentities" href="queryentitieswithmultipleentities(PartitionKey=\'123\',RowKey=\'1\')" />
                         <category term="aogail2.queryentitieswithmultipleentities" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
                         <content type="application/xml">
                         <m:properties>
                             <d:PartitionKey>123</d:PartitionKey>
                             <d:RowKey>1</d:RowKey>
                             <d:Timestamp m:type="Edm.DateTime">2012-05-17T00:59:32.1131734Z</d:Timestamp>
                             <d:CustomerId m:type="Edm.Int32">890</d:CustomerId>
                             <d:CustomerName>John</d:CustomerName>
                             <d:IsNew m:type="Edm.Boolean">true</d:IsNew>
                             <d:JoinDate m:type="Edm.DateTime">2012-01-26T18:26:19Z</d:JoinDate>
                         </m:properties>
                         </content>
                     </entry>
                     <entry m:etag="W/&quot;datetime\'2012-05-17T00%3A59%3A32.4252358Z\'&quot;">
                         <id>http://aogail2.table.core.windows.net/queryentitieswithmultipleentities(PartitionKey=\'124\',RowKey=\'2\')</id>
                         <title type="text"></title>
                         <updated>2012-05-17T00:59:32Z</updated>
                         <author>
                         <name />
                         </author>
                         <link rel="edit" title="queryentitieswithmultipleentities" href="queryentitieswithmultipleentities(PartitionKey=\'124\',RowKey=\'2\')" />
                         <category term="aogail2.queryentitieswithmultipleentities" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
                         <content type="application/xml">
                         <m:properties>
                             <d:PartitionKey>124</d:PartitionKey>
                             <d:RowKey>2</d:RowKey>
                             <d:Timestamp m:type="Edm.DateTime">2012-05-17T00:59:32.4252358Z</d:Timestamp>
                             <d:CustomerId m:type="Edm.Int32">890</d:CustomerId>
                             <d:CustomerName>John</d:CustomerName>
                             <d:IsNew m:type="Edm.Boolean">true</d:IsNew>
                             <d:JoinDate m:type="Edm.DateTime">2012-01-26T18:26:19Z</d:JoinDate>
                         </m:properties>
                         </content>
                     </entry>
                     <entry m:etag="W/&quot;datetime\'2012-05-17T00%3A59%3A32.7533014Z\'&quot;">
                         <id>http://aogail2.table.core.windows.net/queryentitieswithmultipleentities(PartitionKey=\'125\',RowKey=\'3\')</id>
                         <title type="text"></title>
                         <updated>2012-05-17T00:59:32Z</updated>
                         <author>
                         <name />
                         </author>
                         <link rel="edit" title="queryentitieswithmultipleentities" href="queryentitieswithmultipleentities(PartitionKey=\'125\',RowKey=\'3\')" />
                         <category term="aogail2.queryentitieswithmultipleentities" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
                         <content type="application/xml">
                         <m:properties>
                             <d:PartitionKey>125</d:PartitionKey>
                             <d:RowKey>3</d:RowKey>
                             <d:Timestamp m:type="Edm.DateTime">2012-05-17T00:59:32.7533014Z</d:Timestamp>
                             <d:CustomerId m:type="Edm.Int32">890</d:CustomerId>
                             <d:CustomerName>John</d:CustomerName>
                             <d:IsNew m:type="Edm.Boolean">true</d:IsNew>
                             <d:JoinDate m:type="Edm.DateTime">2012-01-26T18:26:19Z</d:JoinDate>
                         </m:properties>
                         </content>
                     </entry>
                     </feed>
                     ';
     // Test
     $actual = $atomSerializer->parseEntities($entitiesAtom);
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers WindowsAzure\Common\Models\RetentionPolicy::toArray
  */
 public function testToArrayWithoutDays()
 {
     // Setup
     $sample = TestResources::getServicePropertiesSample();
     $retentionPolicy = RetentionPolicy::create($sample['Logging']['RetentionPolicy']);
     $expected = array('Enabled' => $sample['Logging']['RetentionPolicy']['Enabled']);
     $retentionPolicy->setDays(null);
     // Test
     $actual = $retentionPolicy->toArray();
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @group livefeatures
  * @group channel
  */
 public function testCreateGetDeleteValidateChannel2()
 {
     // Upload image
     $resource = fopen(__DIR__ . "/resources/default_slate_image_media_services.jpg", 'r');
     $slateAsset = $this->uploadSingleFile("slate2.jpg", $resource);
     // Setup
     $channelName = TestResources::MEDIA_SERVICES_CHANNEL_NAME . $this->createSuffix();
     $channel = $this->makeChannelEncodingTypeStandard($channelName);
     $channel->getCrossSiteAccessPolicies()->setClientAccessPolicy(TestResources::getClientAccessPolicy());
     $channel->getCrossSiteAccessPolicies()->setCrossDomainPolicy(TestResources::getCrossDomainPolicy());
     $channel->setSlate(new ChannelSlate());
     $channel->getSlate()->setInsertSlateOnAdMarker(true);
     $channel->getSlate()->setDefaultSlateAssetId($slateAsset->getId());
     // test
     $operation = $this->restProxy->sendCreateChannelOperation($channel);
     // waiting for create operation finishes
     $operation = $this->restProxy->awaitOperation($operation);
     // get the created channel
     $channelResult = $this->restProxy->getChannel($operation->getTargetEntityId());
     // assert #1, channel must exists
     $channelId = $channelResult->getId();
     $this->assertEquals($channelId, $operation->getTargetEntityId());
     $this->assertEquals($channelResult->getState(), ChannelState::Stopped);
     $this->assertEqualsChannel($channel, $channelResult);
     // assert #2 the list should contains the channel
     $list = $this->restProxy->getChannelList();
     $exists = false;
     foreach ($list as $channel) {
         if ($channel->getId() == $channelId) {
             $exists = true;
         }
     }
     $this->assertTrue($exists);
     // delete the channel
     $operation = $this->restProxy->sendDeleteChannelOperation($channelResult->getId());
     // waiting for delete operation finishes
     $operation = $this->restProxy->awaitOperation($operation);
     // assert #3 the list should not contains the channel
     $list = $this->restProxy->getChannelList();
     foreach ($list as $channel) {
         $this->assertFalse($channel->getId() == $channelId);
     }
 }
 /**
  * @covers WindowsAzure\Common\ServicesBuilder::createMediaServicesService
  */
 public function testBuildForMediaServices()
 {
     // Setup
     $builder = new ServicesBuilder();
     $connection = TestResources::getMediaServicesConnectionParameters();
     $settings = new MediaServicesSettings($connection['accountName'], $connection['accessKey']);
     // Test
     $mediaServicesRestProxy = $builder->createMediaServicesService($settings);
     // Assert
     $this->assertInstanceOf('WindowsAzure\\MediaServices\\Internal\\IMediaServices', $mediaServicesRestProxy);
 }
 /**
  * @covers WindowsAzure\Common\Internal\Utilities::serialize
  * @covers WindowsAzure\Common\Internal\Utilities::_arr2xml
  */
 public function testSerialize()
 {
     // Setup
     $propertiesSample = TestResources::getServicePropertiesSample();
     $properties = ServiceProperties::create($propertiesSample);
     $expected = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
     $expected .= '<StorageServiceProperties><Logging><Version>1.0</Version><Delete>true</Delete>';
     $expected .= '<Read>false</Read><Write>true</Write><RetentionPolicy><Enabled>true</Enabled>';
     $expected .= '<Days>20</Days></RetentionPolicy></Logging><Metrics><Version>1.0</Version>';
     $expected .= '<Enabled>true</Enabled><IncludeAPIs>false</IncludeAPIs><RetentionPolicy>';
     $expected .= '<Enabled>true</Enabled><Days>20</Days></RetentionPolicy></Metrics></StorageServiceProperties>';
     $array = $properties->toArray();
     // Test
     $actual = Utilities::serialize($array, ServiceProperties::$xmlRootName);
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers WindowsAzure\Common\Internal\ServicesBuilder::build
  * @covers WindowsAzure\Common\Internal\ServicesBuilder::_validateConfig
  * @covers WindowsAzure\Common\Internal\ServicesBuilder::_validateConfigSetting
  */
 public function testValidateConfigWithEmptyTableSettingConfig()
 {
     $missingValueMsg = sprintf(Resources::MISSING_CONFIG_SETTING_VALUE_MSG, 'TableSettings::ACCOUNT_KEY');
     $config = new Configuration();
     $config->setProperty(TableSettings::ACCOUNT_NAME, TestResources::accountName());
     $config->setProperty(TableSettings::ACCOUNT_KEY, null);
     $config->setProperty(TableSettings::URI, 'url');
     $builder = new ServicesBuilder();
     $this->setExpectedException('\\InvalidArgumentException', $missingValueMsg);
     $builder->build($config, Resources::TABLE_TYPE_NAME);
 }
 /**
  * @covers WindowsAzure\ServiceBus\Internal\WrapTokenManager::__construct
  * @covers WindowsAzure\ServiceBus\Internal\WrapTokenManager::getAccessToken
  */
 public function testGetAccesTokenFailedWithInvalidPassword()
 {
     $this->setExpectedException(get_class(new ServiceException('')));
     $settings = ServiceBusSettings::createFromConnectionString(TestResources::getServiceBusConnectionString());
     $wrapUri = $settings->getWrapEndpointUri();
     $wrapUserName = $settings->getWrapName();
     $wrapPassword = '******';
     $scope = $settings->getServiceBusEndpointUri();
     $wrapTokenManager = new WrapTokenManager($wrapUri, $wrapUserName, $wrapPassword, $this->_wrapRestProxy);
     // Test
     $wrapTokenManager->getAccessToken($scope);
 }
 /**
  * @covers WindowsAzure\Table\TableRestProxy::batch
  * @covers WindowsAzure\Table\TableRestProxy::_createBatchRequestBody
  * @covers WindowsAzure\Table\TableRestProxy::_getOperationContext
  * @covers WindowsAzure\Table\TableRestProxy::_createOperationsContexts
  * @covers WindowsAzure\Table\TableRestProxy::_constructPutOrMergeEntityContext
  * @covers WindowsAzure\Table\Internal\MimeReaderWriter::encodeMimeMultipart
  * @covers WindowsAzure\Table\Internal\MimeReaderWriter::decodeMimeMultipart
  * @covers WindowsAzure\Table\Models\BatchResult::create
  * @covers WindowsAzure\Table\Models\BatchResult::_constructResponses
  * @covers WindowsAzure\Table\Models\BatchResult::_compareUsingContentId
  * @covers WindowsAzure\Common\Internal\ServiceRestProxy::sendContext
  */
 public function testBatchWithDifferentPKFail()
 {
     // Setup
     $name = 'batchwithwithdifferentpkfail';
     $this->createTable($name);
     $partitionKey = '123';
     $rk1 = '456';
     $rk3 = '458';
     $delete = TestResources::getTestEntity($partitionKey, $rk1);
     $update = TestResources::getTestEntity($partitionKey, $rk3);
     $this->restProxy->insertEntity($name, $delete);
     $this->restProxy->insertEntity($name, $update);
     $result = $this->restProxy->queryEntities($name);
     $entities = $result->getEntities();
     $delete = $entities[0];
     $update = $entities[1];
     $update->addProperty('CustomerPlace', EdmType::STRING, 'Redmond');
     $operations = new BatchOperations();
     $operations->addUpdateEntity($name, $update);
     $operations->addDeleteEntity($name, '125', $delete->getRowKey(), $delete->getETag());
     // Test
     $result = $this->restProxy->batch($operations);
     // Assert
     $this->assertTrue(true);
 }
示例#30
0
 /**
  * @covers WindowsAzure\Common\Models\Metrics::toArray
  */
 public function testToArrayWithNotEnabled()
 {
     // Setup
     $sample = TestResources::getServicePropertiesSample();
     $sample['Metrics']['Enabled'] = 'false';
     $metrics = Metrics::create($sample['Metrics']);
     $expected = array('Version' => $sample['Metrics']['Version'], 'Enabled' => $sample['Metrics']['Enabled'], 'RetentionPolicy' => $metrics->getRetentionPolicy()->toArray());
     // Test
     $actual = $metrics->toArray();
     // Assert
     $this->assertEquals($expected, $actual);
 }