/** * 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())); }