/**
  * 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 ListQueuesResult object from parsed XML response.
  *
  * @param array $parsedResponse XML response parsed into array.
  * 
  * @return MicrosoftAzure\Storage\Queue\Models\ListQueuesResult.
  */
 public static function create($parsedResponse)
 {
     $result = new ListQueuesResult();
     $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->_queues = array();
     $rawQueues = array();
     if (!empty($parsedResponse['Queues'])) {
         $rawQueues = Utilities::getArray($parsedResponse['Queues']['Queue']);
     }
     foreach ($rawQueues as $value) {
         $queue = new Queue($value['Name'], $serviceEndpoint . $value['Name']);
         $metadata = Utilities::tryGetValue($value, Resources::QP_METADATA);
         $queue->setMetadata(is_null($metadata) ? array() : $metadata);
         $result->_queues[] = $queue;
     }
     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;
 }
 /**
  * @covers MicrosoftAzure\Storage\Common\Internal\Utilities::tryGetKeysChainValue
  */
 public function testTryGetKeysChainValue()
 {
     // Setup
     $array = array();
     $array['a1'] = array();
     $array['a2'] = 'value1';
     $array['a1']['b1'] = array();
     $array['a1']['b2'] = 'value2';
     $array['a1']['b1']['c1'] = 'value3';
     // Test - Level 1
     $this->assertEquals('value1', Utilities::tryGetKeysChainValue($array, 'a2'));
     $this->assertEquals(null, Utilities::tryGetKeysChainValue($array, 'a3'));
     // Test - Level 2
     $this->assertEquals('value2', Utilities::tryGetKeysChainValue($array, 'a1', 'b2'));
     $this->assertEquals(null, Utilities::tryGetKeysChainValue($array, 'a1', 'b3'));
     // Test - Level 3
     $this->assertEquals('value3', Utilities::tryGetKeysChainValue($array, 'a1', 'b1', 'c1'));
     $this->assertEquals(null, Utilities::tryGetKeysChainValue($array, 'a1', 'b1', 'c2'));
 }