### Question:
JdbcExecuteInterceptor implements Installable { @Override public AgentBuilder install(final AgentBuilder agentBuilder) { return agentBuilder .type(buildClassMatcher()) .transform(new AgentBuilder.Transformer.ForAdvice() .advice(buildMethodMatcher(), JdbcExecuteInterceptor.class.getName())); }  @Advice.OnMethodEnter static ServiceRequestEvent enter(@Advice.AllArguments final Object[] args,
                                            @Advice.Origin final String origin,
                                            @Advice.This final Statement stmt); @Advice.OnMethodExit(onThrowable = Throwable.class) static void exit(@Advice.Enter final ServiceRequestEvent requestEvent,
                            @Advice.Return final Object response,
                            @Advice.Thrown final Throwable thrown); @Override AgentBuilder install(final AgentBuilder agentBuilder); static String parseQueryFromStatement(Statement stmt, Object[] params); static final Logger log; static final String SQL_ORIGIN; }### Answer:
@Test public void testInstallation() { AgentBuilder agentBuilder = mock(AgentBuilder.class); AgentBuilder.Identified.Extendable extendable = mock(AgentBuilder.Identified.Extendable.class); AgentBuilder.Identified.Narrowable narrowable = mock(AgentBuilder.Identified.Narrowable.class); when(agentBuilder.type(any(ElementMatcher.class))).thenReturn(narrowable); when(narrowable.transform(any(AgentBuilder.Transformer.class))).thenReturn(extendable); AgentBuilder result = interceptor.install(agentBuilder); assertSame(extendable, result); }