$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')); $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');
require 'engine/xfLuceneHits.class.php'; require 'engine/xfEngine.interface.php'; require 'engine/xfLuceneEngine.class.php'; require 'criteria/xfCriterion.interface.php'; require 'result/xfDocumentHit.class.php'; require 'document/xfDocument.class.php'; require 'document/xfField.class.php'; require 'document/xfFieldValue.class.php'; require 'addon/xfLuceneEnhancedFilesystem.class.php'; $t = new lime_test(17, new lime_output_color()); $doc = new xfDocument('foobar'); $doc->addField(new xfFieldValue(new xfField('title', xfField::TEXT), 'foobar')); $engine = new xfLuceneEngine(dirname(__FILE__) . '/../../sandbox/index'); $engine->erase(); $engine->open(); $engine->add($doc); $engine->commit(); $zhits = $engine->getIndex()->find('foobar'); $hits = new xfLuceneHits($engine, $zhits); $t->diag('->current()'); $r = $hits->current(); $t->isa_ok($r, 'xfDocumentHit', '->current() returns an xfDocumentHit'); $t->is($r->getOption('score'), $zhits[0]->score, '->current() returns an xfDocumentHit with correct score'); $t->is($r->getOption('id'), $zhits[0]->id, '->current() returns an xfDocumentHit with correct id'); $t->is($r->getDocument()->getField('title')->getValue(), 'foobar', '->current() communicates with the unwriter correctly'); $t->ok($r === $hits->current(), '->current() caches the response'); $t->diag('->key(), ->next(), ->valid(), ->rewind(), ->seek()'); $t->is($hits->key(), 0, '->key() returns the current key'); $t->ok($hits->valid(), '->valid() returns true if key exists'); $hits->next(); $t->is($hits->key(), 1, '->next() advances the key by one');