/** * {@inheritDoc} */ public function validate($model) { if (!$this->supports($model)) { return new ViolationCollection(); } $violationCollection = $this->constraintValidator->validate($model); $arguments = $model->allArguments(); $violationCollection->merge($this->collectionValidator->validate($arguments)); foreach ($arguments as $argument) { $violationCollection->merge($this->argumentValidator->validate($argument)); } return $violationCollection; }
function it_also_validates_arguments(ArgumentValidator $argumentValidator, CollectionValidator $collectionValidator, Method $model) { $arguments = array(); $violationCollection1 = new ViolationCollection(); $violationCollection2 = new ViolationCollection(); $model->isAbstract()->willReturn(false); $model->allArguments()->willReturn($arguments); $collectionValidator->validate($arguments)->willReturn($violationCollection1); $argumentValidator->validate($arguments)->willReturn($violationCollection2); $this->validate($model); }