/**
  * Create InsertEntityResult object from HTTP response parts.
  * 
  * @param string            $body           The HTTP response body.
  * @param array             $headers        The HTTP response headers.
  * @param IAtomReaderWriter $atomSerializer The atom reader and writer.
  * 
  * @return \MicrosoftAzure\Storage\Table\Models\InsertEntityResult
  * 
  * @static
  */
 public static function create($body, $headers, $atomSerializer)
 {
     $result = new InsertEntityResult();
     $entity = $atomSerializer->parseEntity($body);
     $entity->setETag(Utilities::tryGetValue($headers, Resources::ETAG));
     $result->setEntity($entity);
     return $result;
 }
 /**
  * @covers MicrosoftAzure\Storage\Table\Models\InsertEntityResult::setEntity
  * @covers MicrosoftAzure\Storage\Table\Models\InsertEntityResult::getEntity
  */
 public function testSetEntity()
 {
     // Setup
     $result = new InsertEntityResult();
     $entity = new Entity();
     // Test
     $result->setEntity($entity);
     // Assert
     $this->assertEquals($entity, $result->getEntity());
 }
Example #3
0
 /**
  * Creates BatchResult object.
  * 
  * @param string            $body           The HTTP response body.
  * @param array             $operations     The batch operations.
  * @param array             $contexts       The batch operations context.
  * @param IAtomReaderWriter $atomSerializer The Atom reader and writer.
  * @param IMimeReaderWriter $mimeSerializer The MIME reader and writer.
  * 
  * @return \MicrosoftAzure\Storage\Table\Models\BatchResult
  * 
  * @throws \InvalidArgumentException 
  */
 public static function create($body, $operations, $contexts, $atomSerializer, $mimeSerializer)
 {
     $result = new BatchResult();
     $responses = self::_constructResponses($body, $mimeSerializer);
     $callbackName = __CLASS__ . '::_compareUsingContentId';
     $count = count($responses);
     $entries = array();
     // Sort $responses based on Content-ID so they match order of $operations.
     uasort($responses, $callbackName);
     for ($i = 0; $i < $count; $i++) {
         $context = $contexts[$i];
         $response = $responses[$i];
         $operation = $operations[$i];
         $type = $operation->getType();
         $body = $response->body;
         $headers = HttpFormatter::formatHeaders($response->headers);
         try {
             ServiceRestProxy::throwIfError($response->statusCode, $response->reason, $response->body, $context->getStatusCodes());
             switch ($type) {
                 case BatchOperationType::INSERT_ENTITY_OPERATION:
                     $entries[] = InsertEntityResult::create($body, $headers, $atomSerializer);
                     break;
                 case BatchOperationType::UPDATE_ENTITY_OPERATION:
                 case BatchOperationType::MERGE_ENTITY_OPERATION:
                 case BatchOperationType::INSERT_REPLACE_ENTITY_OPERATION:
                 case BatchOperationType::INSERT_MERGE_ENTITY_OPERATION:
                     $entries[] = UpdateEntityResult::create($headers);
                     break;
                 case BatchOperationType::DELETE_ENTITY_OPERATION:
                     $entries[] = Resources::BATCH_ENTITY_DEL_MSG;
                     break;
                 default:
                     throw new \InvalidArgumentException();
             }
         } catch (ServiceException $e) {
             $entries[] = BatchError::create($e, $response->headers);
         }
     }
     $result->setEntries($entries);
     return $result;
 }
 /**
  * Inserts new entity to the table.
  *
  * @param string                     $table   name of the table.
  * @param Models\Entity              $entity  table entity.
  * @param Models\TableServiceOptions $options optional parameters.
  *
  * @return Models\InsertEntityResult
  *
  * @see http://msdn.microsoft.com/en-us/library/windowsazure/dd179433.aspx
  */
 public function insertEntity($table, $entity, $options = null)
 {
     $context = $this->_constructInsertEntityContext($table, $entity, $options);
     $response = $this->sendContext($context);
     $body = $response->getBody();
     $headers = HttpFormatter::formatHeaders($response->getHeaders());
     return InsertEntityResult::create($body, $headers, $this->_atomSerializer);
 }