@Override
  public ClientHttpResponse intercept(HttpRequest request, byte[] body,
      ClientHttpRequestExecution execution) throws IOException {
    if (traceContext.tracer() != null) {
      request = traceContext.tracer().inject(request);
    }
    ClientHttpResponse response = execution.execute(request, body);
    return response;
  }
@Test
  public void testInterceptor() throws IOException {
    ClientHttpRequestExecution execution = Mockito.mock(ClientHttpRequestExecution.class);
    HttpRequest request = Mockito.mock(HttpRequest.class);
    byte[] body = new byte[]{};
    ApolloAuditTracer tracer = Mockito.mock(ApolloAuditTracer.class);
    HttpRequest mockInjected = Mockito.mock(HttpRequest.class);

    Mockito.when(traceContext.tracer()).thenReturn(tracer);
    Mockito.when(tracer.inject(Mockito.eq(request)))
            .thenReturn(mockInjected);

    interceptor.intercept(request, body, execution);

    Mockito.verify(execution, Mockito.times(1))
        .execute(Mockito.eq(mockInjected), Mockito.eq(body));
  }