public function throwValidationExceptionWith(ValidationResultInterface $validationResult, $property, $message)
 {
     $validationResult->addInvalidMessage($property, [$message]);
     $validationException = new ValidationFailedException();
     $validationException->setValidationResult($validationResult);
     throw $validationException;
 }
 /**
  * @covers StdLib\Validator\Validator::validate
  */
 public function testValidateValidationAppliedWithErrors()
 {
     /**
      * Apply the validation to the config
      */
     $this->applyValidationConfig();
     $optionExtractor = $this->getMockBuilder(OptionsExtractor::class)->disableOriginalConstructor()->getMock();
     $entityManagerMock = $this->getMockBuilder(EntityManagerInterface::class)->getMock();
     $validator = new Validator($optionExtractor, $this->router, $entityManagerMock);
     /**
      * @var ValidationResultInterface $validationResult
      */
     $validationResult = $validator->validate($this->createRequest(static::$urlInvalid));
     $exceptionValidator = new ValidationFailedException();
     $exceptionValidator->setValidationResult($validationResult);
     $this->assertEquals($exceptionValidator->getValidationResult(), $validationResult);
 }
 /**
  * Validates the request
  * @param Request $request
  * @param Response $response
  * @param callable|null $out
  * @inheritdoc
  */
 public function __invoke(Request $request, Response $response, callable $out = null)
 {
     /**
      * @var ValidationResult $validationResult
      */
     $validationResult = $this->validator->validate($request);
     if (!is_bool($validationResult) && $validationResult->notValid()) {
         $validationException = new ValidationFailedException();
         $validationException->setValidationResult($validationResult);
         throw $validationException;
     } elseif (!is_bool($validationResult)) {
         // Valid
         return $out($validationResult->getRequest(), $response);
     } else {
         return $out($request, $response);
     }
 }