Пример #1
0
 /**
  * Test that the sql output works correctly
  *
  * @return void
  */
 public function testSqlOutput()
 {
     $expr = new QueryExpression();
     $expr->eq('test', 'true');
     $caseExpression = new CaseExpression($expr, 'foobar');
     $expected = 'CASE WHEN test = :c0 THEN :c1 END';
     $this->assertSame($expected, $caseExpression->sql(new ValueBinder()));
     $expr2 = new QueryExpression();
     $expr2->eq('test2', 'false');
     $caseExpression->add($expr2);
     $expected = 'CASE WHEN test = :c0 THEN :c1 WHEN test2 = :c2 THEN :c3 END';
     $this->assertSame($expected, $caseExpression->sql(new ValueBinder()));
     $caseExpression = new CaseExpression([$expr], ['foobar', 'else']);
     $expected = 'CASE WHEN test = :c0 THEN :c1 ELSE :c2 END';
     $this->assertSame($expected, $caseExpression->sql(new ValueBinder()));
 }