17 $this->_model = new \Magento\Framework\Validator\DataObject();
19 $fieldOneExactValue = new \Zend_Validate_Identical(
'field_one_value');
20 $fieldOneExactValue->setMessage(
"'field_one' does not match expected value");
21 $fieldOneLength = new \Zend_Validate_StringLength([
'min' => 10]);
23 $fieldTwoExactValue = new \Zend_Validate_Identical(
'field_two_value');
24 $fieldTwoExactValue->setMessage(
"'field_two' does not match expected value");
25 $fieldTwoLength = new \Zend_Validate_StringLength([
'min' => 5]);
27 $entityValidity = new \Zend_Validate_Callback([$this,
'isEntityValid']);
28 $entityValidity->setMessage(
'Entity is not valid.');
30 $this->_model->addRule(
60 return (
bool)
$entity->getData(
'is_valid');
66 $this->assertSame($this->_model, $actualResult,
'Methods chaining is broken.');
71 $messages = $this->_model->getMessages();
72 $this->assertInternalType(
'array', $messages);
80 public function testIsValid(array $inputEntityData, array $expectedErrors)
82 $entity = new \Magento\Framework\DataObject($inputEntityData);
83 $isValid = $this->_model->isValid(
$entity);
84 $this->assertFalse($isValid,
'Validation is expected to fail.');
86 $actualMessages = $this->_model->getMessages();
87 $this->assertCount(count($expectedErrors), $actualMessages,
'Number of messages does not meet expectations.');
88 foreach ($expectedErrors as $errorIndex => $expectedErrorMessage) {
90 $actualMessage = $actualMessages[$errorIndex];
91 $this->assertEquals($expectedErrorMessage, $actualMessage);
101 'only "field_one" is invalid' => [
102 [
'field_one' =>
'one_value',
'field_two' =>
'field_two_value',
'is_valid' =>
true],
103 [
"'one_value' is less than 10 characters long",
"'field_one' does not match expected value"],
105 'only "field_two" is invalid' => [
106 [
'field_one' =>
'field_one_value',
'field_two' =>
'two_value',
'is_valid' =>
true],
107 [
"'field_two' does not match expected value"],
109 'entity as a whole is invalid' => [
110 [
'field_one' =>
'field_one_value',
'field_two' =>
'field_two_value'],
111 [
'Entity is not valid.'],
113 'errors aggregation' => [
114 [
'field_one' =>
'one_value',
'field_two' =>
'two'],
116 "'one_value' is less than 10 characters long",
117 "'field_one' does not match expected value",
118 "'two' is less than 5 characters long",
119 "'field_two' does not match expected value",
120 'Entity is not valid.' isEntityValid(\Magento\Framework\DataObject $entity)