@Test public void wrongParameterType() { Object[] parameters = new Long[] { 1L }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void notExistingOurClass() { Object[] parameters = new String[] { "rocks.inspectit.agent.java.StupidClass" }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void nullParameters() { Object[] parameters = null; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void opentracingClass() throws Exception { Object[] parameters = new String[] { io.opentracing.Tracer.class.getName() }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is((Object) io.opentracing.Tracer.class)); verifyZeroInteractions(object, ssc); }
@Test public void happyPath() { Object[] parameters = new String[] { ClassLoadingDelegationHookTest.class.getName() }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is((Object) ClassLoadingDelegationHookTest.class)); verifyZeroInteractions(object, ssc); }
@Test public void emptyParameters() { Object[] parameters = new String[] {}; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void nullFirstParameter() { Object[] parameters = new String[] { null }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void tooMuchParameters() { Object[] parameters = new String[] { "bla", "nah" }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void notOurClass() { Object[] parameters = new String[] { String.class.getName() }; Object result = hook.beforeBody(METHOD_ID, object, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(object, ssc); }
@Test public void reflectAsmClassLoader() throws Exception { Class<?> classLoaderClass = Class.forName("com.esotericsoftware.reflectasm.AccessClassLoader"); Constructor<?> constructor = classLoaderClass.getDeclaredConstructor(ClassLoader.class); constructor.setAccessible(true); Object classLoader = constructor.newInstance(this.getClass().getClassLoader()); Object[] parameters = new String[] { ClassLoadingDelegationHookTest.class.getName() }; Object result = hook.beforeBody(METHOD_ID, classLoader, parameters, ssc); assertThat(result, is(nullValue())); verifyZeroInteractions(ssc); }