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));
 }
Esempio n. 2
0
 public function assembleValuesClause(ValuesClause $clause)
 {
     $assembled = '(' . implode(', ', $this->assembleSegments($clause->getExpressions())) . ')';
     $assembler = $this->getAssembler();
     if ($assembler->getData(self::MULTIPLE_VALUES)) {
         return $assembled;
     }
     $assembler->setData(self::MULTIPLE_VALUES, true);
     return $clause->getAction() . ' ' . $assembled;
 }
Esempio n. 3
0
 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']);
 }