/**
  * @covers MicrosoftAzure\Storage\Common\ServicesBuilder::createTableService
  * @covers MicrosoftAzure\Storage\Common\ServicesBuilder::serializer
  * @covers MicrosoftAzure\Storage\Common\ServicesBuilder::mimeSerializer
  * @covers MicrosoftAzure\Storage\Common\ServicesBuilder::atomSerializer
  * @covers MicrosoftAzure\Storage\Common\ServicesBuilder::tableAuthenticationScheme
  */
 public function testBuildForTable()
 {
     // Setup
     $builder = new ServicesBuilder();
     // Test
     $tableRestProxy = $builder->createTableService(TestResources::getWindowsAzureStorageServicesConnectionString());
     // Assert
     $this->assertInstanceOf('MicrosoftAzure\\Storage\\Table\\Internal\\ITable', $tableRestProxy);
 }
 /**
  * @covers MicrosoftAzure\Storage\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());
 }
 /**
  * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::serialize
  * @covers MicrosoftAzure\Storage\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 MicrosoftAzure\Storage\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 MicrosoftAzure\Storage\Queue\Models\MicrosoftAzureQueueMessage::createFromPeekMessages
  */
 public function testCreateFromPeekMessages()
 {
     // Setup
     $sample = TestResources::listMessagesSample();
     $sample = $sample['QueueMessage'];
     // Test
     $actual = MicrosoftAzureQueueMessage::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 MicrosoftAzure\Storage\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 MicrosoftAzure\Storage\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['@attributes']['ServiceEndpoint'] . $sample['Queues']['Queue'][0]['Name'], $queues[0]->getUrl());
     $this->assertEquals($sample['Queues']['Queue'][1]['Name'], $queues[1]->getName());
     $this->assertEquals($sample['@attributes']['ServiceEndpoint'] . $sample['Queues']['Queue'][1]['Name'], $queues[1]->getUrl());
     $this->assertEquals($sample['MaxResults'], $actual->getMaxResults());
     $this->assertEquals($sample['NextMarker'], $actual->getNextMarker());
     return $actual;
 }
 /**
  * @covers MicrosoftAzure\Storage\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['@attributes']['ServiceEndpoint'] . $sample['Containers']['Container'][0]['Name'], $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['@attributes']['ServiceEndpoint'] . $sample['Containers']['Container'][1]['Name'], $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 MicrosoftAzure\Storage\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());
 }
 public function testParseEntities()
 {
     // Setup
     $atomSerializer = new AtomReaderWriter();
     $pk1 = '123';
     $pk2 = '124';
     $pk3 = '125';
     $e1 = TestResources::getExpectedTestEntity($pk1, '1');
     $e2 = TestResources::getExpectedTestEntity($pk2, '2');
     $e3 = TestResources::getExpectedTestEntity($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.1131734Z'));
     $e2->setTimestamp(Utilities::convertToDateTime('2012-05-17T00:59:32.4252358Z'));
     $e3->setTimestamp(Utilities::convertToDateTime('2012-05-17T00:59:32.7533014Z'));
     $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:19.0000473Z</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:19.0000473Z</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:19.0000473Z</d:JoinDate>
                         </m:properties>
                         </content>
                     </entry>
                     </feed>
                     ';
     // Test
     $actual = $atomSerializer->parseEntities($entitiesAtom);
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers MicrosoftAzure\Storage\Blob\Models\ContainerAcl::toXml
  * @covers MicrosoftAzure\Storage\Blob\Models\ContainerAcl::toArray
  * @depends testCreateMultipleEntries
  */
 public function testToXml($acl)
 {
     // Setup
     $sample = TestResources::getContainerAclMultipleEntriesSample();
     $expected = ContainerAcl::create('container', $sample['SignedIdentifiers']);
     $xmlSerializer = new XmlSerializer();
     // Test
     $xml = $acl->toXml($xmlSerializer);
     // Assert
     $array = Utilities::unserialize($xml);
     $acl = ContainerAcl::create('container', $array);
     $this->assertEquals($expected->getSignedIdentifiers(), $acl->getSignedIdentifiers());
 }
 /**
  * @covers MicrosoftAzure\Storage\Table\TableRestProxy::batch
  * @covers MicrosoftAzure\Storage\Table\TableRestProxy::_createBatchRequestBody
  * @covers MicrosoftAzure\Storage\Table\TableRestProxy::_getOperationContext
  * @covers MicrosoftAzure\Storage\Table\TableRestProxy::_createOperationsContexts
  * @covers MicrosoftAzure\Storage\Table\TableRestProxy::_constructPutOrMergeEntityContext
  * @covers MicrosoftAzure\Storage\Table\Internal\MimeReaderWriter::encodeMimeMultipart
  * @covers MicrosoftAzure\Storage\Table\Internal\MimeReaderWriter::decodeMimeMultipart
  * @covers MicrosoftAzure\Storage\Table\Models\BatchResult::create
  * @covers MicrosoftAzure\Storage\Table\Models\BatchResult::_constructResponses
  * @covers MicrosoftAzure\Storage\Table\Models\BatchResult::_compareUsingContentId
  * @covers MicrosoftAzure\Storage\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);
 }
 /**
  * @covers MicrosoftAzure\Storage\Common\Internal\Utilities::serialize
  * @covers MicrosoftAzure\Storage\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><HourMetrics><Version>1.0</Version>';
     $expected .= '<Enabled>true</Enabled><IncludeAPIs>false</IncludeAPIs><RetentionPolicy>';
     $expected .= '<Enabled>true</Enabled><Days>20</Days></RetentionPolicy></HourMetrics></StorageServiceProperties>';
     $array = $properties->toArray();
     // Test
     $actual = Utilities::serialize($array, ServiceProperties::$xmlRootName);
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers MicrosoftAzure\Storage\Queue\QueueRestProxy::setServiceProperties
  */
 public function testSetServiceProperties()
 {
     $this->skipIfEmulated();
     // Setup
     $expected = ServiceProperties::create(TestResources::setServicePropertiesSample());
     // Test
     $this->setServiceProperties($expected);
     $actual = $this->restProxy->getServiceProperties();
     // Assert
     $this->assertEquals($expected->toXml($this->xmlSerializer), $actual->getValue()->toXml($this->xmlSerializer));
 }
Beispiel #15
0
 /**
  * @covers MicrosoftAzure\Storage\Common\Models\Logging::toArray
  */
 public function testToArray()
 {
     // Setup
     $sample = TestResources::getServicePropertiesSample();
     $logging = Logging::create($sample['Logging']);
     $expected = array('Version' => $sample['Logging']['Version'], 'Delete' => $sample['Logging']['Delete'], 'Read' => $sample['Logging']['Read'], 'Write' => $sample['Logging']['Write'], 'RetentionPolicy' => $logging->getRetentionPolicy()->toArray());
     // Test
     $actual = $logging->toArray();
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers MicrosoftAzure\Storage\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);
 }
Beispiel #17
0
 /**
  * @covers MicrosoftAzure\Storage\Common\Models\Metrics::toArray
  */
 public function testToArrayWithNotEnabled()
 {
     // Setup
     $sample = TestResources::getServicePropertiesSample();
     $sample['HourMetrics']['Enabled'] = 'false';
     $metrics = Metrics::create($sample['HourMetrics']);
     $expected = array('Version' => $sample['HourMetrics']['Version'], 'Enabled' => $sample['HourMetrics']['Enabled'], 'RetentionPolicy' => $metrics->getRetentionPolicy()->toArray());
     // Test
     $actual = $metrics->toArray();
     // Assert
     $this->assertEquals($expected, $actual);
 }
 public function __construct()
 {
     parent::__construct();
     $this->connectionString = TestResources::getWindowsAzureStorageServicesConnectionString();
 }
 /**
  * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::serialize
  */
 public function testSerialize()
 {
     // Setup
     $jsonSerializer = new JsonSerializer();
     $testData = TestResources::getSimpleJson();
     $expected = $testData['jsonArray'];
     // Test
     $actual = $jsonSerializer->serialize($testData['dataArray']);
     // Assert
     $this->assertEquals($expected, $actual);
 }
 /**
  * @covers MicrosoftAzure\Storage\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());
 }
 /**
  * @covers MicrosoftAzure\Storage\Queue\Models\PeekMessagesResult::setQueueMessages
  */
 public function testSetQueueMessages()
 {
     // Setup
     $sample = TestResources::listMessagesSample();
     $expectedMessageId = '1234b585-0ac3-4e2a-ad0c-18e3992brca1';
     $result = PeekMessagesResult::create($sample);
     $expected = $result->getQueueMessages();
     $expected[0]->setMessageId($expectedMessageId);
     // Test
     $result->setQueueMessages($expected);
     $this->assertEquals($expected, $result->getQueueMessages());
 }
 /**
  * @covers MicrosoftAzure\Storage\Common\Models\ServiceProperties::toXml
  */
 public function testToXml()
 {
     // Setup
     $properties = ServiceProperties::create(TestResources::getServicePropertiesSample());
     $xmlSerializer = new XmlSerializer();
     // Test
     $actual = $properties->toXml($xmlSerializer);
     // Assert
     $actualParsed = Utilities::unserialize($actual);
     $actualProperties = GetServicePropertiesResult::create($actualParsed);
     $this->assertEquals($actualProperties->getValue(), $properties);
 }