Neos\Flow\Tests\Unit\Validation\Validator\GenericObjectValidatorTest::validateDetectsFailuresInRecursiveTargetsII PHP Méthode

validateDetectsFailuresInRecursiveTargetsII() public méthode

    public function validateDetectsFailuresInRecursiveTargetsII()
    {
        $classNameA = 'A' . md5(uniqid(mt_rand(), true));
        eval('class ' . $classNameA . '{ public $b; public $uuid = 0xF; }');
        $classNameB = 'B' . md5(uniqid(mt_rand(), true));
        eval('class ' . $classNameB . '{ public $a; public $uuid = 0xF; }');
        $A = new $classNameA();
        $B = new $classNameB();
        $A->b = $B;
        $B->a = $A;
        $aValidator = $this->getValidator();
        $bValidator = $this->getValidator();
        $aValidator->addPropertyValidator('b', $bValidator);
        $bValidator->addPropertyValidator('a', $aValidator);
        $error1 = new Error\Error('error1', 123);
        $result1 = new Error\Result();
        $result1->addError($error1);
        $mockUuidValidator = $this->createMock(ValidatorInterface::class);
        $mockUuidValidator->expects($this->any())->method('validate')->with(0xf)->will($this->returnValue($result1));
        $aValidator->addPropertyValidator('uuid', $mockUuidValidator);
        $bValidator->addPropertyValidator('uuid', $mockUuidValidator);
        $this->assertSame(['b.uuid' => [$error1], 'uuid' => [$error1]], $aValidator->validate($A)->getFlattenedErrors());
    }