/** * @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/"datetime\'2012-05-17T00%3A59%3A32.1131734Z\'""> <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/"datetime\'2012-05-17T00%3A59%3A32.4252358Z\'""> <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/"datetime\'2012-05-17T00%3A59%3A32.7533014Z\'""> <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)); }
/** * @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); }
/** * @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); }