/** * @test */ public function validateReturnsAllErrorsIfAllValidatorsReturnErrrors() { $validatorDisjunction = new DisjunctionValidator([]); $error1 = new Error\Error('Error', 123); $error2 = new Error\Error('Error2', 123); $errors1 = new Error\Result(); $errors1->addError($error1); $validatorObject = $this->createMock(ValidatorInterface::class); $validatorObject->expects($this->any())->method('validate')->will($this->returnValue($errors1)); $errors2 = new Error\Result(); $errors2->addError($error2); $secondValidatorObject = $this->createMock(ValidatorInterface::class); $secondValidatorObject->expects($this->any())->method('validate')->will($this->returnValue($errors2)); $validatorDisjunction->addValidator($validatorObject); $validatorDisjunction->addValidator($secondValidatorObject); $this->assertEquals([$error1, $error2], $validatorDisjunction->validate('some subject')->getErrors()); }