$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'));
$doc->addField(new xfFieldValue(new xfField('age', xfField::STORED), 18));
$engine->add($doc);
$engine->commit();
$t->is($engine->count(), 1, '->add() adds a document');
$parent = new xfDocument('parent');
$child = new xfDocument('child');
$pet = new xfDocument('pet');
$parent->addChild($child);
$child->addChild($pet);
$engine->add($parent);
$engine->commit();
$t->is($engine->count(), 4, '->add() adds a document and every subdocument');
$t->diag('->findGuid()');
$doc = $engine->findGuid('guid');
$t->isa_ok($doc, 'xfDocument', '->findGuid() returns an xfDocument');
$t->is($doc->getGuid(), 'guid', '->findGuid() returns the correct document');
$doc = $engine->findGuid('parent');
$children = $doc->getChildren();