/** * @covers Brickoo\Component\Annotation\Definition\AnnotationDefinitionTargetFilter::__construct * @covers Brickoo\Component\Annotation\Definition\AnnotationDefinitionTargetFilter::filter */ public function testFilterAnnotationDefinitionsByTarget() { $definition = new AnnotationDefinition("annotation_1", Annotation::TARGET_CLASS); $annotationFilter = new AnnotationDefinitionTargetFilter(new Collection([$definition, new AnnotationDefinition("annotation_2", Annotation::TARGET_PROPERTY), new AnnotationDefinition("annotation_3", Annotation::TARGET_METHOD)])); $filteredAnnotations = $annotationFilter->filter(Annotation::TARGET_CLASS); $this->assertSame($definition, $filteredAnnotations->current()); }
/** * Validates a reader result against the provided definition. * @param \Brickoo\Component\Common\Collection $collection * @param \Brickoo\Component\Annotation\AnnotationReaderResult $readerResult * @throws \Brickoo\Component\Annotation\Exception\MissingRequiredAnnotationException * @throws \Brickoo\Component\Annotation\Exception\MissingRequiredAnnotationParametersException * @return void */ public function validate(Collection $collection, AnnotationReaderResult $readerResult) { $targets = [Annotation::TARGET_CLASS, Annotation::TARGET_METHOD, Annotation::TARGET_PROPERTY]; $annotationFilter = new AnnotationDefinitionTargetFilter($collection); foreach ($targets as $annotationTarget) { $this->validateAnnotations($annotationFilter->filter($annotationTarget), $readerResult->getAnnotationsByTarget($annotationTarget)); } }
/** * Set the annotation white list for an annotation type. * @param integer $targetType * @return \Brickoo\Component\Annotation\AnnotationReflectionClassReader */ private function setAnnotationWhiteList($targetType) { $this->annotationParser->setAnnotationWhitelist($this->getAnnotationsNames($this->annotationTargetFilter->filter($targetType))); return $this; }