$t->is($post->getUniqueId(), $identifier); // @Test: getFieldsArray() generates an array with all the required fields $keys = array_keys($post->getFieldsArray()); $t->is_deeply($keys, array('sf_unique_id', 'sf_meta_class', 'sf_meta_id', 'title_t', 'body_t')); // @Test: getFieldsArray() generates an array with correct values $array = $post->getFieldsArray(); $t->is($array['sf_meta_class']['value'], 'Post'); $t->is($array['sf_meta_id']['value'], $post->getId()); $t->is($array['title_t']['value'], 'title'); $t->is($array['body_t']['value'], 'body'); // @Test: deleteIndex() calls the deleteAllFromClass handler function $handler->deleteAllFromClass('Post')->once(); $handler->commit()->once(); $handler->replay(); Doctrine::getTable('Post')->deleteIndex(); $handler->verify(); // @Test: createSearchQuery returns a Doctrine_Query object $results = array('response' => array('docs' => array(0 => array('sf_meta_id' => 1), 3 => array('sf_meta_id' => 2), 2 => array('sf_meta_id' => 3)))); $handler->any('search')->returns($results); $handler->replay(); $q = Doctrine::getTable('Post')->createSearchQuery('azerty'); $t->ok($q instanceof Doctrine_Query); // @Test: I18n integration $story = new Story(); $story->slug = 'toto'; $story->Translation['fr']->body = 'Mon histoire'; $story->Translation['en']->body = 'My story'; $story->save(); $fields = $story->getFieldsArray(); $t->ok(array_key_exists('body_fr', $fields)); $t->ok(array_key_exists('body_en', $fields));