public function testAssemble() { $statement = new ReplaceStatement(); $insert = new ReplaceClause(); $insert->setTable('tbl'); $statement->addClause($insert); $this->assertEquals('REPLACE INTO tbl ()', QueryAssembler::stringify($statement)); $insert->addField((new FieldExpression())->setField('id')); $insert->addField((new FieldExpression())->setField('name')); $this->assertEquals('REPLACE INTO tbl (id, name)', QueryAssembler::stringify($statement)); $values = new ValuesClause(); $values->addExpression(new ValueExpression()); $values->addExpression((new ValueExpression())->setValue("Test")); $statement->addClause($values); $this->assertEquals('REPLACE INTO tbl (id, name) ' . 'VALUES (NULL, "Test")', QueryAssembler::stringify($statement)); }
public function testGettersAndSetters() { $clause = new ValuesClause(); $field = new StringExpression(); $field->setValue('abc'); $null = new ValueExpression(); $this->assertFalse($clause->hasExpressions()); $clause->addExpression($field); $this->assertTrue($clause->hasExpressions()); $this->assertSame([$field], $clause->getExpressions()); $clause->clearExpressions(); $clause->setExpressions([$field, $null]); $this->assertTrue($clause->hasExpressions()); $clause->clearExpressions(); $this->assertFalse($clause->hasExpressions()); $this->setExpectedException("InvalidArgumentException"); $clause->setExpressions([$field, $null, 'abc']); }