assertInstanceOf($expected, $expr->and([])); $this->assertInstanceOf($expected, $expr->or([])); } /** * Test SQL generation with one element * * @return void */ public function testSqlGenerationOneClause() { $expr = new QueryExpression(); $binder = new ValueBinder(); $expr->add(['Users.username' => 'sally'], ['Users.username' => 'string']); $result = $expr->sql($binder); $this->assertEquals('Users.username = :c0', $result); } /** * Test SQL generation with many elements * * @return void */ public function testSqlGenerationMultipleClauses() { $expr = new QueryExpression(); $binder = new ValueBinder(); $expr->add( [ 'Users.username' => 'sally', 'Users.active' => 1, ], [ 'Users.username' => 'string', 'Users.active' => 'boolean' ] ); $result = $expr->sql($binder); $this->assertEquals('(Users.username = :c0 AND Users.active = :c1)', $result); } /** * Test that empty expressions don't emit invalid SQL. * * @return void */ public function testSqlWhenEmpty() { $expr = new QueryExpression(); $binder = new ValueBinder(); $result = $expr->sql($binder); $this->assertEquals('', $result); } }