@Test public void handleMethodAnnotationShouldDelegateToInnerHandlerForEachAnnotations() throws Exception { when(mockAnnotation.value()).thenReturn(mockAnnotations); toTest.handleMethodAnnotation(mockAnnotation, mockMethodConfigBuilder); verify(mockMatrixParamAnnotationHandler).handleMethodAnnotation(mockAnnotations[0], mockMethodConfigBuilder); verify(mockMatrixParamAnnotationHandler).handleMethodAnnotation(mockAnnotations[1], mockMethodConfigBuilder); verify(mockAnnotation).value(); }
@Override public void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder) { for(MatrixParam paramAnnotation : annotation.value()){ handler.handleMethodAnnotation(paramAnnotation, builder); } }
MatrixParamsAnnotationHandler extends NoOpAnnotationHandler<MatrixParams> { @Override public void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder) { for(MatrixParam paramAnnotation : annotation.value()){ handler.handleMethodAnnotation(paramAnnotation, builder); } } }
MatrixParamsAnnotationHandler extends NoOpAnnotationHandler<MatrixParams> { @Override public void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder) { for(MatrixParam paramAnnotation : annotation.value()){ handler.handleMethodAnnotation(paramAnnotation, builder); } } MatrixParamsAnnotationHandler(MatrixParamAnnotationHandler handler);  MatrixParamsAnnotationHandler(CRestConfig crestConfig); }
MatrixParamsAnnotationHandler extends NoOpAnnotationHandler<MatrixParams> { @Override public void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder) { for(MatrixParam paramAnnotation : annotation.value()){ handler.handleMethodAnnotation(paramAnnotation, builder); } } MatrixParamsAnnotationHandler(MatrixParamAnnotationHandler handler);  MatrixParamsAnnotationHandler(CRestConfig crestConfig); @Override void handleInterfaceAnnotation(MatrixParams annotation, InterfaceConfigBuilder builder); @Override void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder); }
MatrixParamsAnnotationHandler extends NoOpAnnotationHandler<MatrixParams> { @Override public void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder) { for(MatrixParam paramAnnotation : annotation.value()){ handler.handleMethodAnnotation(paramAnnotation, builder); } } MatrixParamsAnnotationHandler(MatrixParamAnnotationHandler handler);  MatrixParamsAnnotationHandler(CRestConfig crestConfig); @Override void handleInterfaceAnnotation(MatrixParams annotation, InterfaceConfigBuilder builder); @Override void handleMethodAnnotation(MatrixParams annotation, MethodConfigBuilder builder);  }