private RealRobot(Class<?> providersClass, String nameMethod) { this.providersClass = providersClass; for (Method method : providersClass.getDeclaredMethods()) { if (method.getName().equals(nameMethod)) this.method = method; } if (method == null) { String message = Messages .noMethodFoundForMethodName(providersClass, nameMethod); throw new RuntimeException(message); } providersClass.getDeclaredMethods(); this.interceptorMetadata = new GetInterceptorMetadata() .with(providersClass, method, null); this.mockeryMetadata = new GetMockeryMetadata(); this.checkSupportType = new CheckSupportType(); }
@Test public void When_One_Interceptor_Annotated_Then_Get_Interceptor_Metadata() throws NoSuchMethodException { Method method = Providers.class.getDeclaredMethod("string"); InterceptorMetadata interceptorMetadata = getInterceptorMetadata.with(Providers.class, method, null); assertNotNull(interceptorMetadata); }
public MockeryProxy(Class<?> mockingClass) { this.mockingClass = mockingClass; this.getInterceptorMetadata = new GetInterceptorMetadata(); this.getMockeryMetadata = new GetMockeryMetadata(); this.checkSupportType = new CheckSupportType(); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getDeclaringClass() == Object.class) { return method.invoke(this, args); } InterceptorMetadata interceptor = getInterceptorMetadata. with(mockingClass, method, args); try { applyValidationsToParams(method, args); Type adaptedTypeMethod = interceptor .adaptType(method.getGenericReturnType()); MockeryMetadata mockery = getMockeryMetadata .fromMethod(mockingClass, method, adaptedTypeMethod, args); checkSupportType.from(mockingClass, method, mockery, adaptedTypeMethod); Object response = mockery.legal(); return interceptor.onLegalMock(response); } catch (AssertionError e) { return interceptor.onIllegalMock(e); } }
@Before public void init() { getInterceptorMetadata = new GetInterceptorMetadata(); }
@Test public void When_Multiple_Interceptor_Annotated_Then_Throw_Exception() throws NoSuchMethodException { Method method = ProvidersMultipleInterceptor.class.getDeclaredMethod("string"); try { getInterceptorMetadata.with(ProvidersMultipleInterceptor.class, method, null); fail(); } catch (RuntimeException e) { String expectedMessage = Messages .multipleInterceptorsFoundOnClass(ProvidersMultipleInterceptor.class); assertThat(expectedMessage, is(e.getMessage())); } }
@Test public void When_No_Interceptor_Annotated_Then_Throw_Exception() throws NoSuchMethodException { Method method = ProvidersWithoutInterceptor.class.getDeclaredMethod("string"); try { getInterceptorMetadata.with(ProvidersWithoutInterceptor.class, method, null); fail(); } catch (RuntimeException e) { String expectedMessage = Messages .noInterceptorsFoundOnClass(ProvidersWithoutInterceptor.class); assertThat(expectedMessage, is(e.getMessage())); } }