function it_throws_an_exception_when_a_model_validator_fails(Argument $model, ModelValidator $modelValidator) { $violationCollection = new ViolationCollection(); $violationCollection->add(new SomeViolation('Invalid model')); $invalidModelException = 'Memio\\Exception\\InvalidModelException'; $modelValidator->supports($model)->willReturn(true); $modelValidator->validate($model)->willReturn($violationCollection); $this->shouldThrow($invalidModelException)->duringValidate($model); }
/** * @param mixed $model * * @throws \Memio\Validator\Exception\InvalidModelException If model is invalid */ public function validate($model) { $violations = new ViolationCollection(); foreach ($this->modelValidators as $modelValidator) { if ($modelValidator->supports($model)) { $violations->merge($modelValidator->validate($model)); } } $violations->raise(); }