@Test public void requestAdapterNull() throws Exception { // ids long methodId = 7l; long sensorId = 13l; // interceptor Object[] parameters = new String[] { "blah", "bla" }; doReturn(null).when(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); // execute calls hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.firstAfterBody(methodId, sensorId, object, parameters, result, false, rsc); hook.secondAfterBody(coreService, methodId, sensorId, object, parameters, result, false, rsc); // verify timer, interceptor and adapters verify(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); verifyNoMoreInteractions(adapterProvider, clientInterceptor); verifyZeroInteractions(coreService, asyncContextListener); }
@Test public void spanNull() throws Exception { // ids long methodId = 7l; long sensorId = 13l; // interceptor Object[] parameters = new String[] { "blah", "bla" }; doReturn(requestAdapter).when(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); when(clientInterceptor.handleAsyncRequest(requestAdapter)).thenReturn(null); // execute calls hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.firstAfterBody(methodId, sensorId, object, parameters, result, false, rsc); hook.secondAfterBody(coreService, methodId, sensorId, object, parameters, result, false, rsc); // verify timer, interceptor and adapters verify(clientInterceptor).handleAsyncRequest(requestAdapter); verify(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); verifyNoMoreInteractions(adapterProvider, clientInterceptor); verifyZeroInteractions(coreService, asyncContextListener); }
hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.firstAfterBody(methodId, sensorId, object, parameters, result, false, rsc); hook.secondAfterBody(coreService, methodId, sensorId, object, parameters, result, false, rsc);
@Test public void happyPath() throws Exception { // ids boolean exception = RandomUtils.nextBoolean(); long methodId = 7l; long sensorId = 13l; long spanId = 17l; // interceptor Object[] parameters = new String[] { "blah", "bla" }; doReturn(requestAdapter).when(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); SpanContextImpl context = mock(SpanContextImpl.class); when(context.getId()).thenReturn(spanId); SpanImpl spanImpl = mock(SpanImpl.class); when(spanImpl.context()).thenReturn(context); when(spanImpl.isClient()).thenReturn(true); when(clientInterceptor.handleAsyncRequest(requestAdapter)).thenReturn(spanImpl); // execute calls hook.beforeBody(methodId, sensorId, object, parameters, rsc); hook.firstAfterBody(methodId, sensorId, object, parameters, result, exception, rsc); hook.secondAfterBody(coreService, methodId, sensorId, object, parameters, result, exception, rsc); verify(asyncContextListener).asyncSpanContextCreated(context); verify(spanImpl).setTag(ExtraTags.INSPECTT_METHOD_ID, methodId); verify(spanImpl).setTag(ExtraTags.INSPECTT_SENSOR_ID, sensorId); // verify timer, interceptor and adapters verify(clientInterceptor).handleAsyncRequest(requestAdapter); verify(adapterProvider).getAsyncClientRequestAdapter(object, parameters, rsc); verifyNoMoreInteractions(adapterProvider, clientInterceptor, coreService, asyncContextListener); }