/** * {@inheritDoc} */ @Override protected void initHook(Map<String, Object> parameters) { hook = new ExecutorIntercepterHook(tracer); } }
@Test public void parameterIsSpanStore() throws Exception { Object spanStore = mock(SpanStoreRunnable.class); Object[] parameters = new Object[] { spanStore }; Object result = hook.beforeBody(0, targetObject, parameters, ssc); assertThat(parameters[0], is(equalTo(spanStore))); assertThat(result, is(nullValue())); } }
@Test public void noInteraction() { Object object = mock(Object.class); Object[] parameters = new Object[] { object }; Object result = hook.afterBody(0, targetObject, parameters, resultObject, ssc); assertThat(result, is(nullValue())); assertThat(parameters, is(arrayWithSize(1))); assertThat(parameters[0], is(object)); verifyZeroInteractions(object, targetObject, resultObject, ssc, tracer); }
@Test public void tracerContextNotExisting() throws Exception { Object object = mock(Object.class); Object[] parameters = new Object[] { object }; when(tracer.isCurrentContextExisting()).thenReturn(false); Object result = hook.beforeBody(0, targetObject, parameters, ssc); assertThat(parameters[0], is(equalTo(object))); assertThat(result, is(nullValue())); }
@Test public void parameterIsNoRunnable() throws Exception { Object object = mock(Object.class); Object[] parameters = new Object[] { object }; when(tracer.isCurrentContextExisting()).thenReturn(true); Object result = hook.beforeBody(0, targetObject, parameters, ssc); assertThat(parameters[0], is(equalTo(object))); assertThat(result, is(nullValue())); }
@Test @SuppressWarnings({ "unchecked", "rawtypes" }) public void successful() throws Exception { Runnable runnable = mock(Runnable.class); Object[] parameters = new Object[] { runnable }; when(tracer.isCurrentContextExisting()).thenReturn(true); Object result = hook.beforeBody(0, targetObject, parameters, ssc); assertThat(SpanStoreRunnable.class.isInstance(parameters[0]), is(true)); assertThat(parameters[0], isA((Class) SpanStoreRunnable.class)); assertThat(result, is(nullValue())); verify(tracer).isCurrentContextExisting(); verifyNoMoreInteractions(tracer); verifyZeroInteractions(targetObject, ssc); }