{
}
function inst()
{
    return sfLuceneCriteria::newInstance(sfLucene::getInstance('testLucene'));
}
$t->diag('testing constructors');
try {
    $criteria = new sfLuceneCriteria(sfLucene::getInstance('testLucene'));
    $t->pass('__construct() takes a sfLucene instance');
} catch (Exception $e) {
    $t->fail('__construct() takes a sfLuce instance');
}
$t->isa_ok(sfLuceneCriteria::newInstance(sfLucene::getInstance('testLucene')), 'sfLuceneCriteria', '::newInstance() returns an sfLuceneCriteria object');
$t->diag('testing ->getQuery()');
$t->isa_ok($criteria->getQuery(), 'Zend_Search_Lucene_Search_Query_Boolean', '->getQuery() returns an instance of ZSL_Search_Query_Boolean');
$t->diag('testing ->add()');
try {
    $criteria->add('test', true);
    $t->pass('->add() accepts a string');
    $queries = inst()->add('foo')->add('bar')->getQuery()->getSubqueries();
    $t->ok($queries[0] == Zend_Search_Lucene_Search_QueryParser::parse('foo'), '->add() correctly parses and adds text queries');
    $t->ok($queries[1] == Zend_Search_Lucene_Search_QueryParser::parse('bar'), '->add() correctly parses and adds text queries and keeps them in order');
} catch (Exception $e) {
    $e->printStackTrace();
    $t->fail('->add() accepts a string');
    $t->skip('->add() correctly parses and adds text queries');
    $t->skip('->add() correctly parses and adds text queries and keeps them in order');
}
try {
    $criteria->add(new Zend_Search_Lucene_Search_Query_Boolean(), false);
 /**
  * This method try to parse the provided $phrase into a valid solr query
  * The method can handle +/- and quote grouping
  *
  * @param string $field 
  * @param string $phrase 
  * @return sfLuceneCriteria 
  */
 public function addPhraseFieldGuess($field, $full_phrase, $type = sfLuceneCriteria::TYPE_AND)
 {
     $main_criteria = new sfLuceneCriteria();
     foreach ($this->guessParts($full_phrase) as $section => $phrases) {
         if (count($phrases) == 0) {
             continue;
         }
         $inner_type = $section == 'must_contains' || $section == 'must_not_contains' ? 'AND' : 'OR';
         $sign = $section == 'must_contains' ? '+' : ($section == 'must_not_contains' ? '-' : '');
         $c = new sfLuceneCriteria();
         foreach ($phrases as $phrase) {
             $c->add($sign . '(' . self::sanitize($phrase) . ')', $inner_type, true);
         }
         $main_criteria->add('(' . $c->getQuery() . ')', 'AND', true);
     }
     $this->addField($field, $main_criteria, $type, true);
     return $this;
 }