/**
  * Gets the current document from the pointer.
  *
  * @returns xfDocumentHit
  */
 public function current()
 {
     if (!isset($this->hitCache[$this->pointer])) {
         $hit = $this->hits[$this->pointer];
         $doc = $this->engine->unwriteDocument($hit->getDocument());
         $hit = new xfDocumentHit($doc, array('score' => $hit->score, 'id' => $hit->id));
         $this->hitCache[$this->pointer] = $hit;
     }
     return $this->hitCache[$this->pointer];
 }
$field->setBoost(4);
$doc->addField(new xfFieldValue($field, 'bar', 'ascii'));
$field = $engine->rewriteDocument($doc)->getField('foo');
$t->is($field->name, 'foo', '->rewriteDocument() rewrites the name');
$t->is($field->value, 'bar', '->rewriteDocument() rewrites the value');
$t->is($field->encoding, 'ascii', '->rewriteDocument() rewrites the encoding');
$t->is($field->boost, 4, '->rewriteDocument() rewrites the boost');
$child = new xfDocument('child');
$doc->addChild($child);
$t->is($engine->rewriteDocument($doc)->getField('__sub_documents')->value, serialize(array('child')), '->rewriteDocument() caches child GUID');
$t->diag('->unwriteDocument()');
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('__guid', 'guid'));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('__boosts', serialize(array())));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('__sub_documents', serialize(array())));
$response = $engine->unwriteDocument($doc);
$t->isa_ok($response, 'xfDocument', '->unwriteDocument() returns an xfDocument');
$t->is($response->getGuid(), 'guid', '->unwriteDocument() unwrites the GUID');
$fields = array('isStored' => xfField::STORED, 'isIndexed' => xfField::INDEXED, 'isTokenized' => xfField::TOKENIZED, 'isBinary' => xfField::BINARY);
foreach ($fields as $property => $type) {
    $name = 'test';
    $field = new Zend_Search_Lucene_Field($name, 'bar', 'utf8', false, false, false, false);
    $field->{$property} = true;
    $doc->addField($field);
    $doc->addField(Zend_Search_Lucene_Field::UnIndexed('__boosts', serialize(array('test' => 1))));
    $response = $engine->unwriteDocument($doc)->getField('test')->getField()->getType();
    $t->is($response, $type, '->unwriteDocument() can exclusively handle "' . $property . '"');
}
$t->diag('->add()');
$doc = new xfDocument('guid');
$doc->addField(new xfFieldValue(new xfField('name', xfField::KEYWORD), 'carl'));