1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.http.impl.client;
29
30 import java.io.InputStream;
31
32 import org.apache.http.HttpEntity;
33 import org.apache.http.HttpResponse;
34 import org.apache.http.HttpVersion;
35 import org.apache.http.StatusLine;
36 import org.apache.http.client.HttpResponseException;
37 import org.apache.http.entity.StringEntity;
38 import org.apache.http.message.BasicStatusLine;
39 import org.junit.Assert;
40 import org.junit.Test;
41 import org.mockito.Mockito;
42
43
44
45
46 @SuppressWarnings("boxing")
47 public class TestBasicResponseHandler {
48
49 @Test
50 public void testSuccessfulResponse() throws Exception {
51 final StatusLine sl = new BasicStatusLine(HttpVersion.HTTP_1_1, 200, "OK");
52 final HttpResponse response = Mockito.mock(HttpResponse.class);
53 final HttpEntity entity = new StringEntity("stuff");
54 Mockito.when(response.getStatusLine()).thenReturn(sl);
55 Mockito.when(response.getEntity()).thenReturn(entity);
56
57 final BasicResponseHandler handler = new BasicResponseHandler();
58 final String s = handler.handleResponse(response);
59 Assert.assertEquals("stuff", s);
60 }
61
62 @Test
63 public void testUnsuccessfulResponse() throws Exception {
64 final InputStream inStream = Mockito.mock(InputStream.class);
65 final HttpEntity entity = Mockito.mock(HttpEntity.class);
66 Mockito.when(entity.isStreaming()).thenReturn(true);
67 Mockito.when(entity.getContent()).thenReturn(inStream);
68 final StatusLine sl = new BasicStatusLine(HttpVersion.HTTP_1_1, 404, "Not Found");
69 final HttpResponse response = Mockito.mock(HttpResponse.class);
70 Mockito.when(response.getStatusLine()).thenReturn(sl);
71 Mockito.when(response.getEntity()).thenReturn(entity);
72
73 final BasicResponseHandler handler = new BasicResponseHandler();
74 try {
75 handler.handleResponse(response);
76 Assert.fail("HttpResponseException expected");
77 } catch (final HttpResponseException ex) {
78 Assert.assertEquals(404, ex.getStatusCode());
79 Assert.assertEquals("status code: 404, reason phrase: Not Found", ex.getMessage());
80 }
81 Mockito.verify(entity).getContent();
82 Mockito.verify(inStream).close();
83 }
84
85 }