{ $this->rebuilds[] = $name; } } $search = sfLucene::getInstance('testLucene', 'en'); $t->diag('testing ->rebuild()'); $handler = new FooIndexer($search); $handler->rebuild(); $t->is($handler->rebuilds, array('FakeForum'), '->rebuild() calls ->rebuildModel() for all models'); $t->diag('testing ->rebuildModel()'); $handler = new sfLucenePropelIndexerHandler($search); $search->getParameter('models')->get('FakeForum')->set('rebuild_limit', 5); $models = array(); for ($x = 0; $x < 6; $x++) { $var = new FakeForum(); $var->setCulture('en'); $var->setTitle('foo'); $var->setDescription('bar'); $var->setCoolness(3); $var->save(); $var->deleteIndex(); $models[] = $var; } $search->commit(); $t->is($search->numDocs(), 0, 'model setup leaves index empty'); $handler->rebuildModel('FakeForum'); $search->commit(); $t->is($search->numDocs(), count($models), '->rebuildModel() builds all models'); foreach ($models as $model) { $model->delete(); }
} catch (Exception $e) { $t->pass('->insert() fails if field has invalid transformation function'); } $h->get('fields')->get('title')->set('transform', 'md5'); try { $indexer->insert(); $lucene->commit(); $doc = getDoc($lucene, $indexer->getModelGuid()); $t->is($doc->title, md5('foobar'), '->insert() executes if field has valid transformation function'); } catch (Exception $e) { $t->fail('->insert() executes if field has valid transformation function'); } $h->get('fields')->get('title')->set('transform', null); $indexer->delete(); $t->diag('testing ->insert(), model validator'); $model->setCulture('en'); $model->setTitle('title'); $model->setDescription('description'); $model->shouldIndex = false; $indexer->insert(); $lucene->commit(); $t->is($lucene->numDocs(), 0, '->insert() does not insert document if model validator returned false'); $model->shouldIndex = true; $indexer->insert(); $lucene->commit(); $t->is($lucene->numDocs(), 1, '->insert() inserts document if model validator returned true'); $model->shouldIndex = false; $h->remove('validator'); $indexer->insert(); $lucene->commit(); $t->is($lucene->numDocs(), 2, '->insert() inserts document if model does not have a validator');