$invalid = new TestIndex(); $t->diag('->get*(), ->set*()'); $t->is($index->getName(), 'TestIndex', '->getName() is initially the name of the class'); $index->setName('foobar'); $t->is($index->getName(), 'foobar', '->setName() changes the name'); $t->isa_ok($index->getServiceRegistry(), 'xfServiceRegistry', '->getServiceRegistry() returns a service registry'); $registry = new xfServiceRegistry(); $index->setServiceRegistry($registry); $t->is($index->getServiceRegistry(), $registry, '->setServiceRegistry() changes the service registry'); $engine = new xfMockEngine(); $index->setEngine($engine); $t->is($index->getEngine(), $engine, '->setEngine() changes the engine'); $t->ok(!$index->isSetup(), '->isSetup() is false initially'); $index = new TestIndex(); $registry = new xfServiceRegistry(); $registry->register(new xfService(new xfMockIdentifier())); $engine = new xfMockEngine(); $index->setServiceRegistry($registry); $index->setEngine($engine); $t->diag('->insert(), ->remove()'); $index->insert('foo'); $t->ok($index->isSetup(), '->insert() automatically runs setup'); $t->is(count($engine->getDocuments()), 1, '->insert() adds a document'); $index->remove('foo'); $t->is(count($engine->getDocuments()), 0, '->remove() deletes a document'); try { $msg = '->insert() fails if an engine does not exist'; $invalid->insert('foo'); $t->fail($msg); } catch (Exception $e) { $t->pass($msg);
require 'util/xfException.class.php'; require 'result/xfResultIterator.class.php'; require 'result/xfDocumentHit.class.php'; require 'result/xfResultException.class.php'; require 'mock/result/xfMockRetort.class.php'; require 'document/xfDocument.class.php'; require 'document/xfField.class.php'; require 'document/xfFieldValue.class.php'; require 'service/xfServiceRegistry.class.php'; require 'service/xfService.class.php'; require 'mock/service/xfMockIdentifier.class.php'; $service = new xfService(new xfMockIdentifier()); $retort = new xfMockRetort(); $service->addRetort($retort); $registry = new xfServiceRegistry(); $registry->register($service); $document = new xfDocument('guid'); $document->addField(new xfFieldValue(new xfField('_service', xfField::KEYWORD), 'foobar')); $hit = new xfDocumentHit($document); $array = array($hit, 'foo'); $iterator = new xfResultIterator(new ArrayIterator($array), $registry); $t = new lime_test(9, new lime_output_color()); $t->diag('->current()'); $response = $iterator->current(); $t->isa_ok($response, 'xfDocumentHit', '->current() returns an xfDocumentHit'); $t->is($response->getDocument(), $document, '->current() returns an xfDocumentHit linked to the original document'); $iterator->next(); try { $msg = '->current() throws exception if internal iterator does not return an xfDocumentHit'; $iterator->current(); $t->fail($msg);