public function testComplex()
 {
     $criteria = new KVDdb_Criteria();
     $criteria->add(KVDdb_Criterion::equals('provincie_id', 20001));
     $query = new KVDdb_SimpleQuery(array('gemeente_id'), 'gemeente', $criteria);
     $this->assertEquals($query->generateSql(), 'SELECT gemeente_id FROM gemeente WHERE ( provincie_id = 20001 )');
     $criterion = KVDdb_Criterion::inSubselect('gemeente_id', $query);
     $this->assertEquals($criterion->generateSql(), '( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = 20001 ) ) )');
     $criteria2 = new KVDdb_Criteria();
     $criteria2->add($criterion);
     $this->assertEquals($criteria2->generateSql(), 'WHERE ( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = 20001 ) ) )');
     $this->assertFalse($query->hasJoins());
 }
Exemple #2
0
 /**
  * testParameterizedWithSubSelect 
  *
  * Test een geparameterizeerde subselect. Tot voor kort (zie ticket 363 in de OEPS applicatie) bevatte het getValues( ) array een SimpleQuery object.
  * Probleem zou moeten opgelost zijn, een InSubSelect geeft enkel nog de values van zijn children terug.
  * @return void
  */
 public function testParameterizedWithSubSelect()
 {
     $crit = new KVDdb_Criteria();
     $crit->add(KVDdb_Criterion::equals('provincie_id', 20001));
     $query = new KVDdb_SimpleQuery(array('gemeente_id'), 'gemeente', $crit);
     $criterion = KVDdb_Criterion::inSubselect('gemeente_id', $query);
     $this->criteria->add($criterion);
     $this->assertEquals("WHERE ( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = 20001 ) ) )", $this->criteria->generateSql(KVDdb_Criteria::MODE_FILLED));
     $this->assertEquals("WHERE ( gemeente_id IN ( SELECT gemeente_id FROM gemeente WHERE ( provincie_id = ? ) ) )", $this->criteria->generateSql(KVDdb_Criteria::MODE_PARAMETERIZED));
     $this->assertEquals(array('20001'), $this->criteria->getValues());
 }