b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / magento / framework / Validator / Test / Unit /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/magento/framework/Validator/Test/Unit/ObjectTest.php
Size4.26 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 04:40
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);

namespace Magento\Framework\Validator\Test\Unit;

use Magento\Framework\Validator\DataObject;
use PHPUnit\Framework\TestCase;

class ObjectTest extends TestCase
{
/**
* @var DataObject
*/
protected $_model;

protected function setUp(): void
{
$this->_model = new DataObject();

$fieldOneExactValue = new \Zend_Validate_Identical('field_one_value');
$fieldOneExactValue->setMessage("'field_one' does not match expected value");
$fieldOneLength = new \Zend_Validate_StringLength(['min' => 10]);

$fieldTwoExactValue = new \Zend_Validate_Identical('field_two_value');
$fieldTwoExactValue->setMessage("'field_two' does not match expected value");
$fieldTwoLength = new \Zend_Validate_StringLength(['min' => 5]);

$entityValidity = new \Zend_Validate_Callback([$this, 'isEntityValid']);
$entityValidity->setMessage('Entity is not valid.');

$this->_model->addRule(
$fieldOneLength,
'field_one'
)->addRule(
$fieldOneExactValue,
'field_one'
)->addRule(
$fieldTwoLength,
'field_two'
)->addRule(
$fieldTwoExactValue,
'field_two'
)->addRule(
$entityValidity
);
}

protected function tearDown(): void
{
$this->_model = null;
}

/**
* Entity validation routine to be used as a callback
*
* @param \Magento\Framework\DataObject $entity
* @return bool
*/
public function isEntityValid(\Magento\Framework\DataObject $entity)
{
return (bool)$entity->getData('is_valid');
}

public function testAddRule()
{
$actualResult = $this->_model->addRule(new \Zend_Validate_Identical('field_one_value'), 'field_one');
$this->assertSame($this->_model, $actualResult, 'Methods chaining is broken.');
}

public function testGetMessages()
{
$messages = $this->_model->getMessages();
$this->assertIsArray($messages);
}

/**
* @param array $inputEntityData
* @param array $expectedErrors
* @dataProvider validateDataProvider
*/
public function testIsValid(array $inputEntityData, array $expectedErrors)
{
$entity = new \Magento\Framework\DataObject($inputEntityData);
$isValid = $this->_model->isValid($entity);
$this->assertFalse($isValid, 'Validation is expected to fail.');

$actualMessages = $this->_model->getMessages();
$this->assertCount(count($expectedErrors), $actualMessages, 'Number of messages does not meet expectations.');
foreach ($expectedErrors as $errorIndex => $expectedErrorMessage) {
/** @var $actualMessage \Magento\Framework\Message\AbstractMessage */
$actualMessage = $actualMessages[$errorIndex];
$this->assertEquals($expectedErrorMessage, $actualMessage);
}
}

/**
* @return array
*/
public function validateDataProvider()
{
return [
'only "field_one" is invalid' => [
['field_one' => 'one_value', 'field_two' => 'field_two_value', 'is_valid' => true],
["'one_value' is less than 10 characters long", "'field_one' does not match expected value"],
],
'only "field_two" is invalid' => [
['field_one' => 'field_one_value', 'field_two' => 'two_value', 'is_valid' => true],
["'field_two' does not match expected value"],
],
'entity as a whole is invalid' => [
['field_one' => 'field_one_value', 'field_two' => 'field_two_value'],
['Entity is not valid.'],
],
'errors aggregation' => [
['field_one' => 'one_value', 'field_two' => 'two'],
[
"'one_value' is less than 10 characters long",
"'field_one' does not match expected value",
"'two' is less than 5 characters long",
"'field_two' does not match expected value",
'Entity is not valid.'
],
]
];
}
}