Ejemplo n.º 1
0
 /**
  * @group functional
  */
 public function testUpdateDocumentWithFieldsSource()
 {
     $this->_checkScriptInlineSetting();
     $client = $this->_getClient();
     $index = $client->getIndex('elastica_test');
     $type = $index->getType('update_type');
     $client->setConfigValue('document', array('autoPopulate' => true));
     $newDocument = new Document(null, array('counter' => 5, 'name' => 'Batman'));
     $this->assertFalse($newDocument->hasVersion());
     $response = $type->addDocument($newDocument);
     $responseData = $response->getData();
     $this->assertTrue($newDocument->hasVersion());
     $this->assertArrayHasKey('_version', $responseData, '_version is missing in response data it is weird');
     $this->assertEquals(1, $responseData['_version']);
     $this->assertEquals($responseData['_version'], $newDocument->getVersion());
     $this->assertTrue($newDocument->hasId());
     $script = new Script('ctx._source.counter += count; ctx._source.realName = realName');
     $script->setId($newDocument->getId());
     $script->setParam('count', 7);
     $script->setParam('realName', 'Bruce Wayne');
     $script->setUpsert($newDocument);
     $newDocument->setFieldsSource();
     $response = $type->updateDocument($script);
     $responseData = $response->getData();
     $data = $type->getDocument($newDocument->getId())->getData();
     $this->assertEquals(12, $data['counter']);
     $this->assertEquals('Batman', $data['name']);
     $this->assertEquals('Bruce Wayne', $data['realName']);
     $this->assertTrue($newDocument->hasVersion());
     $this->assertArrayHasKey('_version', $responseData, '_version is missing in response data it is weird');
     $this->assertEquals(2, $responseData['_version']);
     $document = $type->getDocument($newDocument->getId());
 }