Writing Mock class for java http client
<p>I am trying to write unit test cases for my HTTP Client and would like to use mockito to mock the responses received from the server. </p>

<pre><code>public HttpResponse postRequest(String uri, String body) throws IOException {
        HttpResponse response;
        String url = baseUrl + uri;
        try (CloseableHttpClient httpClient = HttpClientBuilder.create()
                .build()) {
            HttpPost post = new HttpPost(url);
            post.setEntity(new StringEntity(body));
            post.setHeader(AUTHORIZATION_HEADER, authorization);
            post.setHeader(CONTENTTYPE_HEADER, APPLICATION_JSON);
            post.setHeader(ACCEPT_HEADER, APPLICATION_JSON);

            response = httpClient.execute(post);
        } catch (IOException e) {
            System.out.println("Caught an exception" + e.getMessage().toString());
            logger.error("Caught an exception" + e.getMessage().toString());
            throw e;
        }
        return response;
    }
</code></pre>

<p>My test class is as follows. I am unable to figure out how I should send my response body.</p>

<pre><code>public class HTTPRequestTest extends Mockito {
    private String body = "{a:b}";

    @Test
    public void xyz throws Exception {
        HttpClient httpClient = mock(HttpClient.class);
        HttpPost httpPost = mock(HttpPost.class);
        HttpResponse httpResponse = mock(HttpResponse.class);
        StatusLine statusLine = mock(StatusLine.class);

        when(httpClient.execute(httpPost)).thenReturn(body);
    }
}
</code></pre>