public function testAssemble() { $expression = DecrementExpression::create(FieldSelectExpression::create('new_field'), 0); $this->assertEquals('new_field - 0', QueryAssembler::stringify($expression)); $expression->setDecrementValue('abc'); $this->assertEquals('new_field - 0', QueryAssembler::stringify($expression)); $expression->setDecrementValue('1'); $this->assertEquals('new_field - 1', QueryAssembler::stringify($expression)); $expression->setDecrementValue(1); $this->assertEquals('new_field - 1', QueryAssembler::stringify($expression)); }
protected function _getCounterValue(QlDao $dao, $field, $value) { $newValue = $dao->{$field}; if ($newValue instanceof Counter) { if ($newValue->isIncrement()) { $value = IncrementExpression::create($field, $newValue->getIncrement()); } elseif ($newValue->isDecrement()) { $value = DecrementExpression::create($field, $newValue->getDecrement()); } elseif ($newValue->isFixedValue()) { $value = NumericExpression::create($newValue->calculated()); } } return $value; }