/**
  * @test
  * @expectedException \Mcustiel\SimpleRequest\Exception\ValidatorDoesNotExistException
  * @expectedExceptionMessage Validator class Mcustiel\SimpleRequest\Filter\Capitalize must implement Mcustiel\SimpleRequest\Interfaces\ValidatorInterface
  */
 public function buildFailsWhenTheClassIsNotAValidator()
 {
     ValidatorBuilder::builder()->withClass(Capitalize::class)->build();
 }
 /**
  * Constructs a Validator object from a Validator annotation.
  *
  * @param \Mcustiel\SimpleRequest\Annotation\ValidatorAnnotation $validatorAnnotation
  *
  * @return \Mcustiel\SimpleRequest\Interfaces\ValidatorInterface Created validator object.
  */
 protected function createValidatorInstanceFromAnnotation($validatorAnnotation)
 {
     return ValidatorBuilder::builder()->withSpecification($validatorAnnotation->getValue())->withClass($validatorAnnotation->getAssociatedClass())->build();
 }
 /**
  * {@inheritdoc}
  * In this method, annotation param is treated as instance of AnnotationWithAssociatedClass.
  *
  * @see \Mcustiel\SimpleRequest\Strategies\Annotations\AnnotationParser::execute()
  */
 public function execute(RequestAnnotation $annotation, PropertyParserBuilder $propertyParser)
 {
     $propertyParser->addValidator(ValidatorBuilder::builder()->withClass($annotation->getAssociatedClass())->withSpecification($annotation->getValue())->build());
 }