Example #1
0
 public function testHasChanged()
 {
     $field = new \Ongoo\Component\Form\Field('mandatoryField_defaultFoo_1');
     $field->setMandatory(true)->setDefaultValue('foo')->setValue("defined value");
     $this->if($validated = $field->validate(null))->then->boolean($validated)->isTrue()->boolean($field->hasSuccess())->isTrue()->boolean($field->hasError())->isFalse()->boolean($field->hasWarning())->isFalse()->boolean($field->isValueSet())->isTrue()->boolean($field->hasChanged())->isTrue()->variable($field->getValue())->isNull()->if($validated = $field->validate(new \Ongoo\Component\Form\Values\NotSetValue()))->then->boolean($validated)->isTrue()->boolean($field->hasSuccess())->isTrue()->boolean($field->hasError())->isFalse()->boolean($field->hasWarning())->isFalse()->boolean($field->isValueSet())->isTrue()->boolean($field->hasChanged())->isTrue()->string($field->getValue())->isEqualTo('foo');
     $field = new \Ongoo\Component\Form\Field('mandatoryField_defaultFoo_2');
     $field->setMandatory(true)->setDefaultAsNotSetValue()->setValue("defined value");
     $field->setSanitizers([function ($value) {
         // always return NotSetValue()
         return new \Ongoo\Component\Form\Values\NotSetValue($value);
     }]);
     $this->if($validated = $field->validate(null))->then->boolean($validated)->isFalse()->boolean($field->hasChanged())->isTrue()->and($errors = $field->getErrors())->array($errors)->hasSize(1)->object($msg = $errors[0])->isInstanceOf('\\Ongoo\\Component\\Form\\Exceptions\\ErrorException')->string($msg->getMessage())->isEqualTo('{name} is mandatory')->string($msg->getField()->getName())->isEqualTo('mandatoryField_defaultFoo_2')->array($msg->getContext())->hasKey('{value}')->array($msg->getContext())->hasKey('{name}')->array($msg->getContext())->contains('mandatoryField_defaultFoo_2')->object($msg->getValue())->isInstanceOf('\\Ongoo\\Component\\Form\\Values\\NotSetValue')->if($validated = $field->validate(new \Ongoo\Component\Form\Values\NotSetValue()))->then->boolean($validated)->isFalse()->boolean($field->hasChanged())->isTrue()->and($errors = $field->getErrors())->array($errors)->hasSize(1)->object($msg = $errors[0])->isInstanceOf('\\Ongoo\\Component\\Form\\Exceptions\\ErrorException')->string($msg->getMessage())->isEqualTo('{name} is mandatory')->string($msg->getField()->getName())->isEqualTo('mandatoryField_defaultFoo_2')->array($msg->getContext())->hasKey('{value}')->array($msg->getContext())->hasKey('{name}')->array($msg->getContext())->contains('mandatoryField_defaultFoo_2')->object($msg->getValue())->isInstanceOf('\\Ongoo\\Component\\Form\\Values\\NotSetValue');
 }