/**
  * Creates ListBlobResult object from parsed XML response.
  *
  * @param array $parsedResponse XML response parsed into array.
  * 
  * @return WindowsAzure\Blob\Models\ListBlobResult.
  */
 public static function create($parsedResponse)
 {
     $result = new ListContainersResult();
     $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($value['Url']);
         $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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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();
     $headerWithLowerCaseKey = array_change_key_case($headers);
     $result->setEtag($headerWithLowerCaseKey[Resources::ETAG]);
     $result->setLastModified(Utilities::rfc1123ToDateTime($headerWithLowerCaseKey[Resources::LAST_MODIFIED]));
     return $result;
 }
 /**
  * Creates GetBlobMetadataResult from response headers.
  * 
  * @param array $headers  The HTTP response headers.
  * @param array $metadata The blob metadata array.
  * 
  * @return GetBlobMetadataResult
  */
 public static function create($headers, $metadata)
 {
     $result = new GetBlobMetadataResult();
     $date = $headers[Resources::LAST_MODIFIED];
     $result->setLastModified(Utilities::rfc1123ToDateTime($date));
     $result->setEtag($headers[Resources::ETAG]);
     $result->setMetadata(is_null($metadata) ? array() : $metadata);
     return $result;
 }
Пример #5
0
 /**
  * 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 WindowsAzure\Blob\Models\BlobProperties::setLastModified
  * @covers WindowsAzure\Blob\Models\BlobProperties::getLastModified
  */
 public function testSetLastModified()
 {
     // Setup
     $expected = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT');
     $properties = new BlobProperties();
     $properties->setLastModified($expected);
     // Test
     $properties->setLastModified($expected);
     // Assert
     $this->assertEquals($expected, $properties->getLastModified());
 }
 /**
  * @covers WindowsAzure\Blob\Models\CreateBlobPagesResult::setLastModified
  * @covers WindowsAzure\Blob\Models\CreateBlobPagesResult::getLastModified
  */
 public function testSetLastModified()
 {
     // Setup
     $expected = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT');
     $options = new CreateBlobPagesResult();
     $options->setLastModified($expected);
     // Test
     $options->setLastModified($expected);
     // Assert
     $this->assertEquals($expected, $options->getLastModified());
 }
 /**
  * @covers WindowsAzure\Blob\Models\ListBlobBlocksResult::setLastModified
  * @covers WindowsAzure\Blob\Models\ListBlobBlocksResult::getLastModified
  */
 public function testSetLastModified()
 {
     // Setup
     $expected = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT');
     $result = new ListBlobBlocksResult();
     $result->setLastModified($expected);
     // Test
     $result->setLastModified($expected);
     // Assert
     $this->assertEquals($expected, $result->getLastModified());
 }
 /**
  * Creates CreateFileRangeResult object from $parsed response in array
  * representation
  *
  * @param array $headers HTTP response headers
  *
  * @return CreateFileRangeResult
  */
 public static function create($headers)
 {
     $result = new CreateFileRangeResult();
     $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));
     return $result;
 }
Пример #10
0
 /**
  * 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;
 }
Пример #11
0
 /**
  * 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 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\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 WindowsAzure\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'));
 }
Пример #16
0
 /**
  * @covers WindowsAzure\Common\Internal\Validate::isDate
  */
 public function testIsDateWithDate()
 {
     $date = Utilities::rfc1123ToDateTime('Fri, 09 Oct 2009 21:04:30 GMT');
     Validate::isDate($date);
     $this->assertTrue(true);
 }
Пример #17
0
 /**
  * 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;
 }
Пример #18
0
 /**
  * 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 WindowsAzure\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);
     $popReceipt = $response->getHeader(Resources::X_MS_POPRECEIPT);
     $timeNextVisible = $response->getHeader(Resources::X_MS_TIME_NEXT_VISIBLE);
     $date = Utilities::rfc1123ToDateTime($timeNextVisible);
     $result = new UpdateMessageResult();
     $result->setPopReceipt($popReceipt);
     $result->setTimeNextVisible($date);
     return $result;
 }
 /**
  * @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;
 }
Пример #20
0
 /**
  * @covers WindowsAzure\ServiceRuntime\Internal\GoalState::__construct
  */
 public function testConstructor()
 {
     $deadline = Utilities::rfc1123ToDateTime('Sun, 25 Sep 2011 19:42:18 GMT');
     $incarnation = 1;
     // Setup
     $goalState = new GoalState($incarnation, null, null, $deadline, null);
     // Test
     $this->assertInstanceOf('WindowsAzure\\ServiceRuntime\\Internal\\GoalState', $goalState);
 }
 /**
  * @covers WindowsAzure\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 WindowsAzure\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);
 }
Пример #23
0
 /**
  * @covers WindowsAzure\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);
 }
Пример #24
0
 /**
  * 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 WindowsAzureQueueMessage object from parsed XML response of
  * PeekMessages.
  *
  * @param array $parsedResponse XML response parsed into array.
  * 
  * @return WindowsAzure\Queue\Models\WindowsAzureQueueMessage.
  */
 public static function createFromPeekMessages($parsedResponse)
 {
     $msg = new WindowsAzureQueueMessage();
     $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;
 }
Пример #26
0
 /**
  * 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);
     $result = new GetContainerPropertiesResult();
     $metadata = $this->getMetadataArray($response->getHeader());
     $date = $response->getHeader(Resources::LAST_MODIFIED);
     $date = Utilities::rfc1123ToDateTime($date);
     $result->setETag($response->getHeader(Resources::ETAG));
     $result->setMetadata($metadata);
     $result->setLastModified($date);
     return $result;
 }