2 declare(strict_types = 1);
22 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
50 $error1 =
new Error(
'error1', 1);
51 $error2 =
new Error(
'error2', 2);
54 $resultWithError1 =
new Result();
55 $resultWithError1->addError($error1);
56 $resultWithError2 =
new Result();
57 $resultWithError2->addError($error2);
58 $objectWithPrivateProperties =
new class() {
59 protected $foo =
'foovalue';
60 protected $bar =
'barvalue';
65 [$objectWithPrivateProperties, $emptyResult1, $emptyResult2, []],
67 [$objectWithPrivateProperties, $resultWithError1, $resultWithError2, [
'foo' => [$error1],
'bar' => [$error2]]]
85 $validatorForFoo = $this->getMockBuilder(ValidatorInterface::class)
86 ->setMethods([
'validate',
'getOptions'])
88 $validatorForFoo->expects($this->once())->method(
'validate')->with(
'foovalue')->will($this->returnValue($validationResultForFoo));
91 $validatorForBar = $this->getMockBuilder(ValidatorInterface::class)
92 ->setMethods([
'validate',
'getOptions'])
94 $validatorForBar->expects($this->once())->method(
'validate')->with(
'barvalue')->will($this->returnValue($validationResultForBar));
96 $validator->addPropertyValidator(
'foo', $validatorForFoo);
97 $validator->addPropertyValidator(
'bar', $validatorForBar);
99 $this->assertEquals(
$errors,
$validator->validate($objectToBeValidated)->getFlattenedErrors());
121 $aValidator->addPropertyValidator(
'b', $bValidator);
122 $bValidator->addPropertyValidator(
'a', $aValidator);
124 $this->assertFalse($aValidator->validate($A)->hasErrors());
146 $aValidator->addPropertyValidator(
'b', $bValidator);
147 $bValidator->addPropertyValidator(
'a', $aValidator);
148 $error =
new Error(
'error1', 123);
150 $result->addError($error);
153 $mockUuidValidator = $this->getMockBuilder(ValidatorInterface::class)
154 ->setMethods([
'validate',
'getOptions'])
156 $mockUuidValidator->expects($this->any())->method(
'validate')->with(15)->will($this->returnValue($result));
157 $bValidator->addPropertyValidator(
'uuid', $mockUuidValidator);
159 $this->assertSame([
'b.uuid' => [$error]], $aValidator->validate($A)->getFlattenedErrors());
182 $aValidator->addPropertyValidator(
'b', $bValidator);
183 $bValidator->addPropertyValidator(
'a', $aValidator);
184 $error1 =
new Error(
'error1', 123);
186 $result1->addError($error1);
189 $mockUuidValidator = $this->getMockBuilder(ValidatorInterface::class)
190 ->setMethods([
'validate',
'getOptions'])
192 $mockUuidValidator->expects($this->any())->method(
'validate')->with(15)->will($this->returnValue($result1));
193 $aValidator->addPropertyValidator(
'uuid', $mockUuidValidator);
194 $bValidator->addPropertyValidator(
'uuid', $mockUuidValidator);
196 $this->assertSame([
'b.uuid' => [$error1],
'uuid' => [$error1]], $aValidator->validate($A)->getFlattenedErrors());
220 $error1 =
new Error(
'error1', 123);
222 $result1->addError($error1);
225 $mockValidatorUuidNot0xF = $this->getMockBuilder(ValidatorInterface::class)
226 ->setMethods([
'validate',
'getOptions'])
228 $mockValidatorUuidNot0xF->expects($this->any())
229 ->method(
'validate')->with(0xF)->will($this->returnValue($result1));
231 $aValidator->addPropertyValidator(
'uuid', $mockValidatorUuidNot0xF);
232 $bValidator->addPropertyValidator(
'uuid', $mockValidatorUuidNot0xF);
233 $aValidator->addPropertyValidator(
'b', $bValidator);
234 $bValidator->addPropertyValidator(
'a', $aValidator);
238 [
'uuid' => [$error1],
'b.uuid' => [$error1],
'b.a.uuid' => [$error1]],
239 $aValidator->validate($A)->getFlattenedErrors()