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 ReplaceClause(); $nameField = new FieldExpression(); $nameField->setField('name'); $idField = new FieldExpression(); $idField->setField('id'); $this->assertFalse($clause->hasFields()); $clause->addField($nameField); $this->assertTrue($clause->hasFields()); $this->assertSame([$nameField], $clause->getFields()); $clause->clearFields(); $clause->setFields([$nameField, $idField]); $this->assertTrue($clause->hasFields()); $clause->clearFields(); $this->assertFalse($clause->hasFields()); $this->setExpectedException("InvalidArgumentException"); $clause->setFields([$nameField, $idField, 'abc']); }