@Test
public void invoke_Statement_execute() throws Throwable {

  StatementInvocationHandler statementInvocationHandler =
      new StatementInvocationHandler(
          mockRealStatement, TRACE_OPTIONS, mockTraceService, Optional.<String>absent());
  statementInvocationHandler.invoke(
      mockProxy,
      Statement.class.getDeclaredMethod("execute", new Class<?>[] {String.class}),
      new Object[] {"insert some sql text"});
  InOrder inOrder = inOrder(mockTraceService, mockTraceSpan, mockRealStatement);
  inOrder.verify(mockTraceService).open("JDBC.Statement#execute");
  inOrder.verify(mockTraceSpan).annotate(Label.SQL_TEXT, Optional.of("#scrubbed SQL#"));
  inOrder.verify(mockRealStatement).execute("insert some sql text");
  inOrder.verify(mockTraceSpan).close();
}