/** * Creates SetBlobMetadataResult from response headers. * * @param array $headers response headers * * @return SetBlobMetadataResult */ public static function create($headers) { $result = new SetBlobMetadataResult(); $date = $headers[Resources::LAST_MODIFIED]; $result->setLastModified(Utilities::rfc1123ToDateTime($date)); $result->setETag($headers[Resources::ETAG]); return $result; }
/** * Creates CreateBlobSnapshotResult object from the response of the * create Blob snapshot request. * * @param array $headers The HTTP response headers in array representation. * * @return CreateBlobSnapshotResult */ public static function create($headers) { $result = new CreateBlobSnapshotResult(); $headerWithLowerCaseKey = array_change_key_case($headers); $result->setETag($headerWithLowerCaseKey[Resources::ETAG]); $result->setLastModified(Utilities::rfc1123ToDateTime($headerWithLowerCaseKey[Resources::LAST_MODIFIED])); $result->setSnapshot($headerWithLowerCaseKey[Resources::X_MS_SNAPSHOT]); return $result; }
/** * Creates CopyBlobResult object from the response of the copy blob request. * * @param array $headers The HTTP response headers in array representation. * * @return CopyBlobResult */ public static function create($headers) { $result = new CopyBlobResult(); $result->setETag(Utilities::tryGetValueInsensitive(Resources::ETAG, $headers)); if (Utilities::arrayKeyExistsInsensitive(Resources::LAST_MODIFIED, $headers)) { $lastModified = Utilities::tryGetValueInsensitive(Resources::LAST_MODIFIED, $headers); $result->setLastModified(Utilities::rfc1123ToDateTime($lastModified)); } return $result; }
/** * @covers MicrosoftAzure\Storage\Blob\Models\ListPageBlobRangesResult::setLastModified * @covers MicrosoftAzure\Storage\Blob\Models\ListPageBlobRangesResult::getLastModified */ public function testSetLastModified() { // Setup $expected = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT'); $result = new ListPageBlobRangesResult(); $result->setLastModified($expected); // Test $result->setLastModified($expected); // Assert $this->assertEquals($expected, $result->getLastModified()); }
/** * @covers MicrosoftAzure\Storage\Blob\Models\SetBlobPropertiesResult::setLastModified * @covers MicrosoftAzure\Storage\Blob\Models\SetBlobPropertiesResult::getLastModified */ public function testSetLastModified() { // Setup $expected = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT'); $prooperties = new SetBlobPropertiesResult(); $prooperties->setLastModified($expected); // Test $prooperties->setLastModified($expected); // Assert $this->assertEquals($expected, $prooperties->getLastModified()); }
/** * Creates CreateBlobPagesResult object from $parsed response in array * representation * * @param array $headers HTTP response headers * * @return CreateBlobPagesResult */ public static function create($headers) { $result = new CreateBlobPagesResult(); $clean = array_change_key_case($headers); $date = $clean[Resources::LAST_MODIFIED]; $date = Utilities::rfc1123ToDateTime($date); $result->setETag($clean[Resources::ETAG]); $result->setLastModified($date); $result->setContentMD5(Utilities::tryGetValue($clean, Resources::CONTENT_MD5)); $result->setSequenceNumber(intval(Utilities::tryGetValue($clean, Resources::X_MS_BLOB_SEQUENCE_NUMBER))); return $result; }
/** * Creates SetBlobPropertiesResult from response headers. * * @param array $headers response headers * * @return SetBlobPropertiesResult */ public static function create($headers) { $result = new SetBlobPropertiesResult(); $date = $headers[Resources::LAST_MODIFIED]; $result->setLastModified(Utilities::rfc1123ToDateTime($date)); $result->setETag($headers[Resources::ETAG]); if (array_key_exists(Resources::X_MS_BLOB_SEQUENCE_NUMBER, $headers)) { $sNumber = $headers[Resources::X_MS_BLOB_SEQUENCE_NUMBER]; $result->setSequenceNumber(intval($sNumber)); } return $result; }
/** * @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\Queue\Models\PeekMessagesResult::create */ public function testCreateMultiple() { // Setup $sample = TestResources::listMessagesMultipleMessagesSample(); // Test $result = PeekMessagesResult::create($sample); // Assert $actual = $result->getQueueMessages(); $this->assertCount(2, $actual); $this->assertEquals($sample['QueueMessage'][0]['MessageId'], $actual[0]->getMessageId()); $this->assertEquals(Utilities::rfc1123ToDateTime($sample['QueueMessage'][0]['InsertionTime']), $actual[0]->getInsertionDate()); $this->assertEquals(Utilities::rfc1123ToDateTime($sample['QueueMessage'][0]['ExpirationTime']), $actual[0]->getExpirationDate()); $this->assertEquals(intval($sample['QueueMessage'][0]['DequeueCount']), $actual[0]->getDequeueCount()); $this->assertEquals($sample['QueueMessage'][0]['MessageText'], $actual[0]->getMessageText()); $this->assertEquals($sample['QueueMessage'][1]['MessageId'], $actual[1]->getMessageId()); $this->assertEquals(Utilities::rfc1123ToDateTime($sample['QueueMessage'][1]['InsertionTime']), $actual[1]->getInsertionDate()); $this->assertEquals(Utilities::rfc1123ToDateTime($sample['QueueMessage'][1]['ExpirationTime']), $actual[1]->getExpirationDate()); $this->assertEquals(intval($sample['QueueMessage'][1]['DequeueCount']), $actual[1]->getDequeueCount()); $this->assertEquals($sample['QueueMessage'][1]['MessageText'], $actual[1]->getMessageText()); }
/** * Creates BlobProperties object from $parsed response in array representation * * @param array $headers HTTP response headers * @param array $parsed parsed response in array format. * * @return ListPageBlobRangesResult */ public static function create($headers, $parsed) { $result = new ListPageBlobRangesResult(); $headers = array_change_key_case($headers); $date = $headers[Resources::LAST_MODIFIED]; $date = Utilities::rfc1123ToDateTime($date); $blobLength = intval($headers[Resources::X_MS_BLOB_CONTENT_LENGTH]); $rawPageRanges = array(); if (!empty($parsed['PageRange'])) { $parsed = array_change_key_case($parsed); $rawPageRanges = Utilities::getArray($parsed['pagerange']); } $result->_pageRanges = array(); foreach ($rawPageRanges as $value) { $result->_pageRanges[] = new PageRange(intval($value['Start']), intval($value['End'])); } $result->setContentLength($blobLength); $result->setETag($headers[Resources::ETAG]); $result->setLastModified($date); return $result; }
/** * @covers MicrosoftAzure\Storage\Common\Internal\Utilities::rfc1123ToDateTime */ public function testWindowsAzureDateToDateTime() { // Setup $expected = 'Fri, 16 Oct 2009 21:04:30 GMT'; // Test $actual = Utilities::rfc1123ToDateTime($expected); // Assert $this->assertEquals($expected, $actual->format('D, d M Y H:i:s T')); }
/** * @covers MicrosoftAzure\Storage\Queue\Models\UpdateMessageResult::setTimeNextVisible */ public function testSetTimeNextVisible() { // Setup $updateMessageResult = new UpdateMessageResult(); $expected = Utilities::rfc1123ToDateTime('Fri, 09 Oct 2009 23:29:20 GMT'); // Test $updateMessageResult->setTimeNextVisible($expected); // Assert $actual = $updateMessageResult->getTimeNextVisible(); $this->assertEquals($expected, $actual); }
/** * @covers MicrosoftAzure\Storage\Blob\Models\GetBlobMetadataResult::setLastModified */ public function testSetLastModified() { // Setup $getBlobMetadataResult = new GetBlobMetadataResult(); $expected = Utilities::rfc1123ToDateTime('Fri, 09 Oct 2009 21:04:30 GMT'); // Test $getBlobMetadataResult->setLastModified($expected); // Assert $actual = $getBlobMetadataResult->getLastModified(); $this->assertEquals($expected, $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; }
/** * Creates ListBlobResult object from parsed XML response. * * @param array $parsedResponse XML response parsed into array. * * @return ListBlobResult */ public static function create($parsedResponse) { $result = new ListContainersResult(); $serviceEndpoint = Utilities::tryGetKeysChainValue($parsedResponse, Resources::XTAG_ATTRIBUTES, Resources::XTAG_SERVICE_ENDPOINT); $result->_accountName = Utilities::tryParseAccountNameFromUrl($serviceEndpoint); $result->_prefix = Utilities::tryGetValue($parsedResponse, Resources::QP_PREFIX); $result->_marker = Utilities::tryGetValue($parsedResponse, Resources::QP_MARKER); $result->_nextMarker = Utilities::tryGetValue($parsedResponse, Resources::QP_NEXT_MARKER); $result->_maxResults = Utilities::tryGetValue($parsedResponse, Resources::QP_MAX_RESULTS); $result->_containers = array(); $rawContainer = array(); if (!empty($parsedResponse['Containers'])) { $containersArray = $parsedResponse['Containers']['Container']; $rawContainer = Utilities::getArray($containersArray); } foreach ($rawContainer as $value) { $container = new Container(); $container->setName($value['Name']); $container->setUrl($serviceEndpoint . $value['Name']); $container->setMetadata(Utilities::tryGetValue($value, Resources::QP_METADATA, array())); $properties = new ContainerProperties(); $date = $value['Properties']['Last-Modified']; $date = Utilities::rfc1123ToDateTime($date); $properties->setLastModified($date); $properties->setETag($value['Properties']['Etag']); $container->setProperties($properties); $result->_containers[] = $container; } return $result; }
/** * Creates BlobProperties object from $parsed response in array representation * * @param array $parsed parsed response in array format. * * @return BlobProperties */ public static function create($parsed) { $result = new BlobProperties(); $clean = array_change_key_case($parsed); $date = Utilities::tryGetValue($clean, Resources::LAST_MODIFIED); $result->setBlobType(Utilities::tryGetValue($clean, 'blobtype')); $result->setContentLength(intval($clean[Resources::CONTENT_LENGTH])); $result->setETag(Utilities::tryGetValue($clean, Resources::ETAG)); if (!is_null($date)) { $date = Utilities::rfc1123ToDateTime($date); $result->setLastModified($date); } $result->setLeaseStatus(Utilities::tryGetValue($clean, 'leasestatus')); $result->setLeaseStatus(Utilities::tryGetValue($clean, Resources::X_MS_LEASE_STATUS, $result->getLeaseStatus())); $result->setSequenceNumber(intval(Utilities::tryGetValue($clean, Resources::X_MS_BLOB_SEQUENCE_NUMBER))); $result->setContentRange(Utilities::tryGetValue($clean, Resources::CONTENT_RANGE)); $result->setCacheControl(Utilities::tryGetValue($clean, Resources::CACHE_CONTROL)); $result->setBlobType(Utilities::tryGetValue($clean, Resources::X_MS_BLOB_TYPE, $result->getBlobType())); $result->setContentEncoding(Utilities::tryGetValue($clean, Resources::CONTENT_ENCODING)); $result->setContentLanguage(Utilities::tryGetValue($clean, Resources::CONTENT_LANGUAGE)); $result->setContentMD5(Utilities::tryGetValue($clean, Resources::CONTENT_MD5)); $result->setContentType(Utilities::tryGetValue($clean, Resources::CONTENT_TYPE)); return $result; }
/** * Creates ListBlobBlocksResult from given response headers and parsed body * * @param array $headers HTTP response headers * @param array $parsed HTTP response body in array representation * * @return ListBlobBlocksResult */ public static function create($headers, $parsed) { $result = new ListBlobBlocksResult(); $clean = array_change_key_case($headers); $result->setETag(Utilities::tryGetValue($clean, Resources::ETAG)); $date = Utilities::tryGetValue($clean, Resources::LAST_MODIFIED); if (!is_null($date)) { $date = Utilities::rfc1123ToDateTime($date); $result->setLastModified($date); } $result->setContentLength(intval(Utilities::tryGetValue($clean, Resources::X_MS_BLOB_CONTENT_LENGTH))); $result->setContentType(Utilities::tryGetValue($clean, Resources::CONTENT_TYPE)); $result->_uncommittedBlocks = self::_getEntries($parsed, 'UncommittedBlocks'); $result->_committedBlocks = self::_getEntries($parsed, 'CommittedBlocks'); return $result; }
/** * Updates the visibility timeout of a message and/or the message contents. * * @param string $queueName The queue name. * @param string $messageId The id of the message. * @param string $popReceipt The valid pop receipt * value returned from an earlier call to the Get Messages or Update Message * operation. * @param string $messageText The message contents. * @param int $visibilityTimeoutInSeconds Specifies the new * visibility timeout value, in seconds, relative to server time. * The new value must be larger than or equal to 0, and cannot be larger * than 7 days. The visibility timeout of a message cannot be set to a value * later than the expiry time. A message can be updated until it has been * deleted or has expired. * @param QueueServiceOptions $options The optional * parameters. * * @return MicrosoftAzure\Storage\Common\Models\UpdateMessageResult */ public function updateMessage($queueName, $messageId, $popReceipt, $messageText, $visibilityTimeoutInSeconds, $options = null) { Validate::isString($queueName, 'queueName'); Validate::notNullOrEmpty($queueName, 'queueName'); Validate::isString($messageId, 'messageId'); Validate::notNullOrEmpty($messageId, 'messageId'); Validate::isString($popReceipt, 'popReceipt'); Validate::notNullOrEmpty($popReceipt, 'popReceipt'); Validate::isString($messageText, 'messageText'); Validate::isInteger($visibilityTimeoutInSeconds, 'visibilityTimeoutInSeconds'); Validate::notNull($visibilityTimeoutInSeconds, 'visibilityTimeoutInSeconds'); $method = Resources::HTTP_PUT; $headers = array(); $postParams = array(); $queryParams = array(); $path = $queueName . '/messages' . '/' . $messageId; $body = Resources::EMPTY_STRING; $statusCode = Resources::STATUS_NO_CONTENT; if (is_null($options)) { $options = new QueueServiceOptions(); } $this->addOptionalQueryParam($queryParams, Resources::QP_VISIBILITY_TIMEOUT, $visibilityTimeoutInSeconds); $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout()); $this->addOptionalQueryParam($queryParams, Resources::QP_POPRECEIPT, $popReceipt); if (!empty($messageText)) { $this->addOptionalHeader($headers, Resources::CONTENT_TYPE, Resources::URL_ENCODED_CONTENT_TYPE); $message = new QueueMessage(); $message->setMessageText($messageText); $body = $message->toXml($this->dataSerializer); } $response = $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode, $body); $responseHeaders = HttpFormatter::formatHeaders($response->getHeaders()); $popReceipt = Utilities::tryGetValue($responseHeaders, Resources::X_MS_POPRECEIPT); $timeNextVisible = Utilities::tryGetValue($responseHeaders, Resources::X_MS_TIME_NEXT_VISIBLE); $date = Utilities::rfc1123ToDateTime($timeNextVisible); $result = new UpdateMessageResult(); $result->setPopReceipt($popReceipt); $result->setTimeNextVisible($date); return $result; }
/** * @covers MicrosoftAzure\Storage\Blob\Models\Container::getProperties */ public function testGetProperties() { // Setup $date = Utilities::rfc1123ToDateTime('Wed, 12 Aug 2009 20:39:39 GMT'); $container = new Container(); $expected = new ContainerProperties(); $expected->setETag('0x8CACB9BD7C1EEEC'); $expected->setLastModified($date); $container->setProperties($expected); // Test $actual = $container->getProperties(); // Assert $this->assertEquals($expected, $actual); }
/** * Creates MicrosoftAzureQueueMessage object from parsed XML response of * PeekMessages. * * @param array $parsedResponse XML response parsed into array. * * @return MicrosoftAzure\Storage\Queue\Models\MicrosoftAzureQueueMessage. */ public static function createFromPeekMessages($parsedResponse) { $msg = new MicrosoftAzureQueueMessage(); $expirationDate = $parsedResponse['ExpirationTime']; $insertionDate = $parsedResponse['InsertionTime']; $msg->setDequeueCount(intval($parsedResponse['DequeueCount'])); $date = Utilities::rfc1123ToDateTime($expirationDate); $msg->setExpirationDate($date); $date = Utilities::rfc1123ToDateTime($insertionDate); $msg->setInsertionDate($date); $msg->setMessageId($parsedResponse['MessageId']); $msg->setMessageText($parsedResponse['MessageText']); return $msg; }
/** * @covers MicrosoftAzure\Storage\Common\Internal\Validate::isDate */ public function testIsDateWithDate() { $date = Utilities::rfc1123ToDateTime('Fri, 09 Oct 2009 21:04:30 GMT'); Validate::isDate($date); $this->assertTrue(true); }
/** * Helper method for getContainerProperties and getContainerMetadata. * * @param string $container The container name. * @param Models\BlobServiceOptions $options The optional parameters. * @param string $operation The operation string. Should be * 'metadata' to get metadata. * * @return Models\GetContainerPropertiesResult */ private function _getContainerPropertiesImpl($container, $options = null, $operation = null) { Validate::isString($container, 'container'); $method = Resources::HTTP_GET; $headers = array(); $queryParams = array(); $postParams = array(); $path = $container; $statusCode = Resources::STATUS_OK; if (is_null($options)) { $options = new BlobServiceOptions(); } $this->addOptionalQueryParam($queryParams, Resources::QP_REST_TYPE, 'container'); $this->addOptionalQueryParam($queryParams, Resources::QP_COMP, $operation); $this->addOptionalQueryParam($queryParams, Resources::QP_TIMEOUT, $options->getTimeout()); $response = $this->send($method, $headers, $queryParams, $postParams, $path, $statusCode); $responseHeaders = HttpFormatter::formatHeaders($response->getHeaders()); $result = new GetContainerPropertiesResult(); $metadata = $this->getMetadataArray($responseHeaders); $date = Utilities::tryGetValue($responseHeaders, Resources::LAST_MODIFIED); $date = Utilities::rfc1123ToDateTime($date); $result->setETag(Utilities::tryGetValue($responseHeaders, Resources::ETAG)); $result->setMetadata($metadata); $result->setLastModified($date); return $result; }