/** * Create a new method model * * @param ClassModel $classModel * @param MethodDataProvider $methodDataProvider * @return MethodModel */ public function make(ClassModel $classModel, MethodDataProvider $methodDataProvider) { $methodModel = new MethodModel($classModel, $methodDataProvider->getName()); $parameters = $methodDataProvider->getParameters(); foreach ($parameters as $parameterDataProvider) { $parameter = $this->parameterModelFactory->make($methodModel, $parameterDataProvider); $methodModel->addParameter($parameter); } return $methodModel; }
public function testGetAnnotations() { $parameterDataProviderFactory = Mockery::mock(ParameterDataProviderFactory::class); $annotationDataProviderFactory = Mockery::mock(AnnotationDataProviderFactory::class); $annotationDataProvider = Mockery::mock(AnnotationDataProvider::class); $reflectionClass = new ReflectionClass(MockInterface::class); $reflectionMethod = $reflectionClass->getMethod('method1'); $annotationDataProviderFactory->shouldReceive('make')->times(1)->with($reflectionMethod)->andReturn($annotationDataProvider); $annotationDataProvider->shouldReceive('getAnnotations')->times(1)->withNoArgs()->andReturn(new AnnotationCollection()); $provider = new MethodDataProvider($reflectionMethod, $parameterDataProviderFactory, $annotationDataProviderFactory); $this->assertInstanceOf(AnnotationCollection::class, $provider->getAnnotations()); }