@Test public void mustNotSetProxyIfThereIsTooFewParameters() { Object[] parameters = new String[] { null, null, null }; hook.beforeBody(METHOD_ID, object, parameters, ssc); verifyNoMoreInteractions(runtimeLinker); verifyZeroInteractions(ssc, object, httpContext, futureCallback); }
@Test public void mustNotHaveAProxyInThirdParametersIfThereIsNoParameters() { Object[] parameters = new Object[] {}; hook.beforeBody(METHOD_ID, object, parameters, ssc); verifyNoMoreInteractions(runtimeLinker); verifyZeroInteractions(ssc, object, httpContext, futureCallback); }
@Test public void mustNotHaveAProxyInThirdParametersIfParametersIsNull() { Object[] parameters = null; hook.beforeBody(METHOD_ID, object, parameters, ssc); verifyNoMoreInteractions(runtimeLinker); verifyZeroInteractions(ssc, object, httpContext, futureCallback); }
@Test public void mustNotSetProxyIfThereIsTooManyParameters() { Object[] parameters = new String[] { null, null, null, null, null }; hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat("Third parameter (proxy) must not be set.", parameters[3], is(nullValue())); verifyNoMoreInteractions(runtimeLinker); verifyZeroInteractions(ssc, object, httpContext, futureCallback); }
@Test public void successful() { SpanStore spanStore = new SpanStore(); Object[] parameters = new Object[] { new Object(), new Object(), httpContext, mock(FutureCallback.class) }; when(runtimeLinker.createProxy(eq(FutureCallbackProxy.class), Mockito.<FutureCallbackProxy> any(), Mockito.<ClassLoader> any())).thenReturn(futureCallback); when(httpContext.getAttribute(SpanStoreAdapter.Constants.ID)).thenReturn(spanStore); ArgumentCaptor<FutureCallbackProxy> proxyCaptor = ArgumentCaptor.forClass(FutureCallbackProxy.class); Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); verify(runtimeLinker).createProxy(eq(FutureCallbackProxy.class), proxyCaptor.capture(), Mockito.<ClassLoader> any()); verifyNoMoreInteractions(runtimeLinker, httpContext); verifyZeroInteractions(ssc, object, futureCallback, httpContext); assertThat(result, is(nullValue())); assertThat(parameters[3], is(theInstance((Object) futureCallback))); }