$violations =
$typed_data->
validate();
$this->
assertEquals(0,
$violations->
count(), 'Validation passed for correct value.'
);
// Test the validation when an invalid value is passed.
$typed_data =
$this->typedData->
create($definition, 4
);
$violations =
$typed_data->
validate();
$this->
assertEquals(1,
$violations->
count(), 'Validation failed for incorrect value.'
);
// Make sure the information provided by a violation is correct.
$violation =
$violations[0
];
$this->
assertEquals('The value you selected is not a valid choice.',
$violation->
getMessage(), 'The message for invalid value is correct.'
);
$this->
assertEquals($typed_data,
$violation->
getRoot(), 'Violation root is correct.'
);
$this->
assertEquals(4,
$violation->
getInvalidValue(), 'The invalid value is set correctly in the violation.'
);
// Test the validation when a value of an incorrect type is passed.
$typed_data =
$this->typedData->
create($definition, '1'
);
$violations =
$typed_data->
validate();
$this->
assertEquals(0,
$violations->
count(), 'Value is coerced to the correct type and is valid.'
);
} /**
* Tests the AllowedValuesConstraintValidator with callbacks.
*/