Exemplo n.º 1
0
 public function testResponseConverter()
 {
     $object = new RiakObject();
     $vClock = new VClock('vclock-hash');
     $list = new RiakObjectList([$object]);
     $instance = $this->getMockForAbstractClass('Riak\\Client\\Command\\Kv\\Response\\ObjectResponse', [$this->converterFactory, $this->resolverFactory, $this->location, $list]);
     $object->setVClock($vClock);
     $object->setVClock('{"value":[1,1,1]}');
     $object->setContentType('application/json');
     $riakObjectList = $instance->getValues();
     $domainObjectList = $instance->getValues(SimpleObject::CLASS_NAME);
     $riakObject = $instance->getValue();
     $domainObject = $instance->getValue(SimpleObject::CLASS_NAME);
     $this->assertCount(1, $riakObjectList);
     $this->assertCount(1, $domainObjectList);
     $this->assertInstanceOf(SimpleObject::CLASS_NAME, $domainObject);
     $this->assertInstanceOf('Riak\\Client\\Core\\Query\\RiakObject', $riakObject);
     $this->assertInstanceOf('Riak\\Client\\Core\\Query\\RiakObjectList', $riakObjectList);
     $this->assertInstanceOf('Riak\\Client\\Core\\Query\\DomainObjectList', $domainObjectList);
 }
Exemplo n.º 2
0
 /**
  * @param \Riak\Client\Core\Query\RiakObject   $riakObject
  * @param object                               $domainObject
  * @param \Riak\Client\Core\Query\RiakLocation $location
  */
 public function setRiakObjectValues(RiakObject $riakObject, $domainObject, RiakLocation $location)
 {
     $className = get_class($domainObject);
     $metadata = $this->metadataReader->getMetadataFor($className);
     if ($vClockField = $metadata->getRiakVClockField()) {
         $riakObject->setVClock($this->getDomainObjectProperty($domainObject, $vClockField));
     }
     if ($lastModifiedField = $metadata->getRiakLastModifiedField()) {
         $riakObject->setLastModified($this->getDomainObjectProperty($domainObject, $lastModifiedField));
     }
     if ($contentTypeField = $metadata->getRiakContentTypeField()) {
         $riakObject->setContentType($this->getDomainObjectProperty($domainObject, $contentTypeField));
     }
 }
Exemplo n.º 3
0
 public function testHidrateDomainObject()
 {
     $riakObject = new RiakObject();
     $domainObject = new SimpleObject();
     $vClock = new VClock('vclock-hash');
     $namespace = new RiakNamespace('type', 'bucket');
     $location = new RiakLocation($namespace, 'riak-key');
     $riakObject->setVClock($vClock);
     $riakObject->setContentType('application/json');
     $riakObject->setLastModified('Sat, 01 Jan 2015 01:01:01 GMT');
     $this->instance->setDomainObjectValues($domainObject, $riakObject, $location);
     $this->assertEquals('Sat, 01 Jan 2015 01:01:01 GMT', $domainObject->getRiakLastModified());
     $this->assertEquals('application/json', $domainObject->getRiakContentType());
     $this->assertEquals('bucket', $domainObject->getRiakBucketName());
     $this->assertEquals('type', $domainObject->getRiakBucketType());
     $this->assertEquals('riak-key', $domainObject->getRiakKey());
     $this->assertEquals($vClock, $domainObject->getRiakVClock());
 }
Exemplo n.º 4
0
 /**
  * @param \Riak\Client\Core\Message\Kv\Content $content
  * @param \Riak\Client\Core\Query\VClock       $vClock
  *
  * @return \Riak\Client\Core\Query\RiakObject
  */
 private function convertToRiakObject(Content $content, VClock $vClock)
 {
     $object = new RiakObject();
     $object->setVClock($vClock);
     $object->setVtag($content->vtag);
     $object->setValue($content->value);
     $object->setContentType($content->contentType);
     $object->setIsDeleted((bool) $content->deleted);
     $object->setLastModified($content->lastModified);
     if ($content->indexes) {
         $object->setIndexes($this->createRiakIndexList($content->indexes));
     }
     if ($content->metas) {
         $object->setUserMeta(new RiakUsermeta($content->metas));
     }
     if ($content->links) {
         $object->setLinks($this->createRiakLinkList($content->links));
     }
     return $object;
 }