/**
  * @covers MicrosoftAzure\Storage\Blob\Models\SetBlobPropertiesOptions::__construct
  */
 public function test__construct()
 {
     // Setup
     $expectedLength = 10;
     $blobProperties = new BlobProperties();
     $blobProperties->setContentLength($expectedLength);
     // Test
     $options = new SetBlobPropertiesOptions($blobProperties);
     // Assert
     $this->assertNotNull($options);
     $this->assertEquals($expectedLength, $options->getBlobContentLength());
 }
 /**
  * Creates GetBlobResult from getBlob call.
  * 
  * @param array  $headers  The HTTP response headers.
  * @param string $body     The response body.
  * @param array  $metadata The blob metadata.
  * 
  * @return GetBlobResult
  */
 public static function create($headers, $body, $metadata)
 {
     $result = new GetBlobResult();
     $result->setContentStream(Utilities::stringToStream($body));
     $result->setProperties(BlobProperties::create($headers));
     $result->setMetadata(is_null($metadata) ? array() : $metadata);
     return $result;
 }
 /**
  * Creates ListBlobsResult object from parsed XML response.
  *
  * @param array $parsed XML response parsed into array.
  * 
  * @return ListBlobsResult
  */
 public static function create($parsed)
 {
     $result = new ListBlobsResult();
     $serviceEndpoint = Utilities::tryGetKeysChainValue($parsed, Resources::XTAG_ATTRIBUTES, Resources::XTAG_SERVICE_ENDPOINT);
     $containerName = Utilities::tryGetKeysChainValue($parsed, Resources::XTAG_ATTRIBUTES, Resources::XTAG_CONTAINER_NAME);
     $result->_containerName = $containerName;
     $result->_prefix = Utilities::tryGetValue($parsed, Resources::QP_PREFIX);
     $result->_marker = Utilities::tryGetValue($parsed, Resources::QP_MARKER);
     $result->_nextMarker = Utilities::tryGetValue($parsed, Resources::QP_NEXT_MARKER);
     $result->_maxResults = intval(Utilities::tryGetValue($parsed, Resources::QP_MAX_RESULTS, 0));
     $result->_delimiter = Utilities::tryGetValue($parsed, Resources::QP_DELIMITER);
     $result->_blobs = array();
     $result->_blobPrefixes = array();
     $rawBlobs = array();
     $rawBlobPrefixes = array();
     if (is_array($parsed['Blobs']) && array_key_exists('Blob', $parsed['Blobs'])) {
         $rawBlobs = Utilities::getArray($parsed['Blobs']['Blob']);
     }
     foreach ($rawBlobs as $value) {
         $blob = new Blob();
         $blob->setName($value['Name']);
         $blob->setUrl($serviceEndpoint . $containerName . '/' . $value['Name']);
         $blob->setSnapshot(Utilities::tryGetValue($value, 'Snapshot'));
         $blob->setProperties(BlobProperties::create(Utilities::tryGetValue($value, 'Properties')));
         $blob->setMetadata(Utilities::tryGetValue($value, Resources::QP_METADATA, array()));
         $result->_blobs[] = $blob;
     }
     if (is_array($parsed['Blobs']) && array_key_exists('BlobPrefix', $parsed['Blobs'])) {
         $rawBlobPrefixes = Utilities::getArray($parsed['Blobs']['BlobPrefix']);
     }
     foreach ($rawBlobPrefixes as $value) {
         $blobPrefix = new BlobPrefix();
         $blobPrefix->setName($value['Name']);
         $result->_blobPrefixes[] = $blobPrefix;
     }
     return $result;
 }
 /**
  * Sets blob cacheControl.
  *
  * @param string $blobCacheControl value to use.
  * 
  * @return none.
  */
 public function setBlobCacheControl($blobCacheControl)
 {
     $this->_blobProperties->setCacheControl($blobCacheControl);
 }
 /**
  * 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;
 }
 /**
  * @covers MicrosoftAzure\Storage\Blob\Models\BlobProperties::setSequenceNumber
  * @covers MicrosoftAzure\Storage\Blob\Models\BlobProperties::getSequenceNumber
  */
 public function testSetSequenceNumber()
 {
     // Setup
     $expected = 123;
     $properties = new BlobProperties();
     $properties->setSequenceNumber($expected);
     // Test
     $properties->setSequenceNumber($expected);
     // Assert
     $this->assertEquals($expected, $properties->getSequenceNumber());
 }
 /**
  * Creates GetBlobPropertiesResult from headers array.
  * 
  * @param array $headers The HTTP response headers array.
  * 
  * @return GetBlobPropertiesResult
  */
 private function _getBlobPropertiesResultFromResponse($headers)
 {
     $result = new GetBlobPropertiesResult();
     $properties = new BlobProperties();
     $d = $headers[Resources::LAST_MODIFIED];
     $bType = $headers[Resources::X_MS_BLOB_TYPE];
     $cLength = intval($headers[Resources::CONTENT_LENGTH]);
     $lStatus = Utilities::tryGetValue($headers, Resources::X_MS_LEASE_STATUS);
     $cType = Utilities::tryGetValue($headers, Resources::CONTENT_TYPE);
     $cMD5 = Utilities::tryGetValue($headers, Resources::CONTENT_MD5);
     $cEncoding = Utilities::tryGetValue($headers, Resources::CONTENT_ENCODING);
     $cLanguage = Utilities::tryGetValue($headers, Resources::CONTENT_LANGUAGE);
     $cControl = Utilities::tryGetValue($headers, Resources::CACHE_CONTROL);
     $etag = $headers[Resources::ETAG];
     $metadata = $this->getMetadataArray($headers);
     if (array_key_exists(Resources::X_MS_BLOB_SEQUENCE_NUMBER, $headers)) {
         $sNumber = intval($headers[Resources::X_MS_BLOB_SEQUENCE_NUMBER]);
         $properties->setSequenceNumber($sNumber);
     }
     $properties->setBlobType($bType);
     $properties->setCacheControl($cControl);
     $properties->setContentEncoding($cEncoding);
     $properties->setContentLanguage($cLanguage);
     $properties->setContentLength($cLength);
     $properties->setContentMD5($cMD5);
     $properties->setContentType($cType);
     $properties->setETag($etag);
     $properties->setLastModified(Utilities::rfc1123ToDateTime($d));
     $properties->setLeaseStatus($lStatus);
     $result->setProperties($properties);
     $result->setMetadata($metadata);
     return $result;
 }