Add unit tests for EditableNumericField::validate()

This commit is contained in:
Robbie Averill 2019-01-16 21:59:02 +01:00
parent d917262565
commit f235c8642c
2 changed files with 24 additions and 1 deletions

View File

@ -82,12 +82,12 @@ class EditableNumericField extends EditableFormField
$field->setAttribute('data-rule-max', $this->MaxValue);
}
}
public function validate()
{
$result = parent::validate();
if ($this->MinValue > $this->MaxValue) {
$result->addError(
_t(__CLASS__ . '.ORDER_WARNING', 'Minimum length should be less than the maximum length.')
);
}

View File

@ -14,4 +14,27 @@ class EditableNumericFieldTest extends SapphireTest
$field->Name = 'EditableFormField_123456';
$this->assertEmpty($field->getFormField()->Title());
}
public function testValidateAddsErrorWhenMinValueIsGreaterThanMaxValue()
{
/** @var EditableNumericField $field */
$field = EditableNumericField::create();
$field->MinValue = 10;
$field->MaxValue = 5;
$result = $field->validate();
$this->assertFalse($result->isValid(), 'Validation should fail when min is greater than max');
$this->assertContains('Minimum length should be less than the maximum length', $result->serialize());
}
public function testValidate()
{
/** @var EditableNumericField $field */
$field = EditableNumericField::create();
$field->MinValue = 5;
$field->MaxValue = 10;
$result = $field->validate();
$this->assertTrue($result->isValid());
}
}