/**
  * Test set Azure values
  */
 public function testSetAzureValues()
 {
     $values = array('PartitionKey' => 'partition1', 'RowKey' => '000001', 'Name' => 'Maarten', 'Age' => 25, 'Visible' => true);
     $target = new DynamicTableEntity();
     $target->setAzureValues($values);
     $target->setAzurePropertyType('Age', 'Edm.Int32');
     $this->assertEquals('partition1', $target->getPartitionKey());
     $this->assertEquals('000001', $target->getRowKey());
     $this->assertEquals('Maarten', $target->Name);
     $this->assertEquals(25, $target->Age);
     $this->assertEquals('Edm.Int32', $target->getAzurePropertyType('Age'));
     $this->assertEquals(true, $target->Visible);
 }
Пример #2
0
 /**
  * Delete document.
  *
  * @param  mixed  $document Document ID or Document object.
  * @param  array  $options
  * @return void
  */
 public function deleteDocument($collectionName, $documentId, $options = null)
 {
     if ($documentId instanceof \Zend\Cloud\DocumentService\Document) {
         $documentId = $documentId->getId();
     }
     $documentId = $this->_validateDocumentId($documentId, $collectionName);
     try {
         $entity = new DynamicTableEntity($documentId[0], $documentId[1]);
         if (isset($options[self::VERIFY_ETAG])) {
             $entity->setEtag($options[self::VERIFY_ETAG]);
         }
         $this->_storageClient->deleteEntity($collectionName, $entity, isset($options[self::VERIFY_ETAG]));
     } catch (WindowsAzureException\ExceptionInterface $e) {
         if (strpos($e->getMessage(), "does not exist") === false) {
             throw new Exception\RuntimeException('Error on document deletion: ' . $e->getMessage(), $e->getCode(), $e);
         }
     }
 }
Пример #3
0
 /**
  * Update entity by adding or updating properties
  *
  * @param string      $tableName   Table name
  * @param TableEntity $entity      Entity to update
  * @param boolean     $verifyEtag  Verify etag of the entity (used for concurrency)
  * @param array       $properties  Properties to merge. All properties will be used when omitted.
  * @return null|TableEntity
  * @throws RuntimeException
  */
 public function mergeEntity($tableName = '', TableEntity $entity = null, $verifyEtag = false, $properties = array())
 {
     $mergeEntity = null;
     if (is_array($properties) && count($properties) > 0) {
         // Build a new object
         $mergeEntity = new DynamicTableEntity($entity->getPartitionKey(), $entity->getRowKey());
         // Keep only values mentioned in $properties
         $azureValues = $entity->getAzureValues();
         foreach ($azureValues as $value) {
             if (in_array($value->Name, $properties)) {
                 $mergeEntity->setAzureProperty($value->Name, $value->Value, $value->Type);
             }
         }
     } else {
         $mergeEntity = $entity;
     }
     return $this->_changeEntity(Request::MERGE, $tableName, $mergeEntity, $verifyEtag);
 }