public RecordedHttpResponse build() { return new RecordedHttpResponse(_status, getHeaders(), getBody()); } }
public static FullHttpResponse from(RecordedHttpResponse recordedHttpResponse) throws IOException { FullHttpResponse fullHttpResponse; HttpResponseStatus status = HttpResponseStatus.valueOf(recordedHttpResponse.getStatus()); if (recordedHttpResponse.hasHttpBody()) { ByteBuf content = wrappedBuffer(createHttpBodyBytes(recordedHttpResponse)); fullHttpResponse = new DefaultFullHttpResponse(HTTP_1_1, status, content); } else { fullHttpResponse = new DefaultFullHttpResponse(HTTP_1_1, status); } for (Map.Entry<String, String> header : recordedHttpResponse.getHeaders().entries()) { fullHttpResponse.headers().add(header.getKey(), header.getValue()); } return fullHttpResponse; }
private static byte[] createHttpBodyBytes(RecordedHttpResponse recordedHttpResponse) throws IOException { return recordedHttpResponse.getHttpBody().getContent(recordedHttpResponse.getCharset()); } }
@Test public void testBuild() throws IOException { HttpResponse httpResponse = new DefaultFullHttpResponse(HttpVersion.HTTP_1_0, HttpResponseStatus.GATEWAY_TIMEOUT); RecordedHttpResponseBuilder recordedHttpResponseBuilder = new RecordedHttpResponseBuilder(httpResponse); String charset = "UTF-8"; String str1 = "Hello world"; HttpContent httpContent1 = new DefaultHttpContent(Unpooled.copiedBuffer(str1.getBytes(charset))); recordedHttpResponseBuilder.appendHttpContent(httpContent1); String str2 = "second content"; HttpContent httpContent2 = new DefaultHttpContent(Unpooled.copiedBuffer(str2.getBytes(charset))); recordedHttpResponseBuilder.appendHttpContent(httpContent2); String lastStr = "Last chunk"; HttpContent lastContent = new DefaultLastHttpContent(Unpooled.copiedBuffer(lastStr.getBytes(charset))); recordedHttpResponseBuilder.appendHttpContent(lastContent); RecordedHttpResponse recordedHttpResponse = recordedHttpResponseBuilder.build(); Assert.assertEquals(recordedHttpResponse.getStatus(), HttpResponseStatus.GATEWAY_TIMEOUT.code()); Assert.assertEquals((str1 + str2 + lastStr).getBytes(charset), recordedHttpResponse.getHttpBody().getContent(charset)); } }
private void writeHttpResponse(RecordedHttpResponse recordedHttpResponse) throws IOException { _jsonGenerator .writeNumberField(SceneSerializationConstant.SCENE_TAG_HTTPSTATUS_CODE, recordedHttpResponse.getStatus()); writeHttpMessage(recordedHttpResponse); }
private RecordedHttpResponse createHttpResponse() throws IOException { _jsonParser.nextToken(); // HTTPRESPONSE Field name validateRequiredField(SceneSerializationConstant.SCENE_TAG_HTTPRESPONSE); _jsonParser.nextToken(); // HTTPRESPONSE.START_OBJECT int statusCode = createStatusCode(); _jsonParser.nextToken(); // Move to next token Multimap<String, String> headers = createHeaders(); RecordedHttpBody recordedHttpBody = createHttpBody(); RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(statusCode, headers, recordedHttpBody); //Check if reach to the end of object for http response if (!(SceneSerializationConstant.SCENE_TAG_HTTPRESPONSE.equals(_jsonParser.getCurrentName()) && _jsonParser.getCurrentToken() == JsonToken.END_OBJECT)) { _jsonParser.nextToken(); } return recordedHttpResponse; }
@Test public void testFromWithoutBody() throws Exception { Multimap<String, String> headers = LinkedHashMultimap.create(); headers.put("key1", "value1"); headers.put("key2", "value2,value3,value4"); int status = 200; RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(status, headers, null); FullHttpResponse fullHttpResponse = NettyHttpResponseMapper.from(recordedHttpResponse); Assert.assertEquals(fullHttpResponse.getStatus().code(), status); Assert.assertEquals(fullHttpResponse.headers().get("key1"), "value1"); List<String> headrValues = fullHttpResponse.headers().getAll("key2"); Assert.assertEquals(headrValues.size(), 1); Assert.assertTrue(headrValues.contains("value2,value3,value4")); }
@Test public void testNonCookieHeader() throws URISyntaxException, IOException { Multimap<String, String> headers = LinkedHashMultimap.create(); headers.put("key1", "value1"); headers.put("Not-Set-Cookie", "YSxiLGM=, ZCxlLGY="); int status = 200; String str = "Hello world"; RecordedStringHttpBody recordedStringHttpBody = new RecordedStringHttpBody(str); RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(status, headers, recordedStringHttpBody); FullHttpResponse fullHttpResponse = NettyHttpResponseMapper.from(recordedHttpResponse); Assert.assertEquals(fullHttpResponse.getStatus().code(), status); Assert.assertEquals(fullHttpResponse.headers().get("key1"), "value1"); List<String> headrValues = fullHttpResponse.headers().getAll("Not-Set-Cookie"); Assert.assertEquals(headrValues.size(), 1); Assert.assertTrue(headrValues.contains("YSxiLGM=, ZCxlLGY=")); }
@Test public void testDuplicateHeader() throws IOException { Multimap<String, String> headers = LinkedHashMultimap.create(); headers.put("key1", "value1"); headers.put("key1", "value2"); int status = 200; RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(status, headers, null); FullHttpResponse fullHttpResponse = NettyHttpResponseMapper.from(recordedHttpResponse); Assert.assertEquals(fullHttpResponse.getStatus().code(), status); List<String> headrValues = fullHttpResponse.headers().getAll("key1"); Assert.assertEquals(headrValues.size(), 2); Assert.assertTrue(headrValues.contains("value1")); Assert.assertTrue(headrValues.contains("value2")); } }
@Test public void testCookieHeader() throws URISyntaxException, IOException { Multimap<String, String> headers = LinkedHashMultimap.create(); headers.put("key1", "value1"); headers.put("Set-Cookie", "YSxiLGM=, ZCxlLGY="); int status = 200; String str = "Hello world"; RecordedStringHttpBody recordedStringHttpBody = new RecordedStringHttpBody(str); RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(status, headers, recordedStringHttpBody); FullHttpResponse fullHttpResponse = NettyHttpResponseMapper.from(recordedHttpResponse); Assert.assertEquals(fullHttpResponse.getStatus().code(), status); Assert.assertEquals(fullHttpResponse.headers().get("key1"), "value1"); List<String> headrValues = fullHttpResponse.headers().getAll("Set-Cookie"); Assert.assertEquals(headrValues.size(), 1); Assert.assertTrue(headrValues.contains("YSxiLGM=, ZCxlLGY=")); }
@Test public void testFromWithBody() throws Exception { Multimap<String, String> headers = LinkedHashMultimap.create(); headers.put("key1", "value1"); headers.put("key2", "value2,value3,value4"); int status = 200; String str = "Hello world"; RecordedStringHttpBody recordedStringHttpBody = new RecordedStringHttpBody(str); RecordedHttpResponse recordedHttpResponse = new RecordedHttpResponse(status, headers, recordedStringHttpBody); FullHttpResponse fullHttpResponse = NettyHttpResponseMapper.from(recordedHttpResponse); Assert.assertEquals(fullHttpResponse.getStatus().code(), status); Assert.assertEquals(fullHttpResponse.headers().get("key1"), "value1"); List<String> headrValues = fullHttpResponse.headers().getAll("key2"); Assert.assertEquals(headrValues.size(), 1); Assert.assertTrue(headrValues.contains("value2,value3,value4")); Assert.assertEquals(fullHttpResponse.content().array(), str.getBytes()); }
static Scene getMockSceneWithoutBodyAndHeader() throws URISyntaxException { RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest("GET", new URI("https://www.google.com"), null, null); RecordedHttpResponse recordedHttpResponse1 = new RecordedHttpResponse(200, null, null); RecordedHttpExchange recordedHttpExchange1 = new RecordedHttpExchange(recordedHttpRequest1, recordedHttpResponse1, new Date("2 Oct 2015 21:04:49 GMT")); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest("GET", new URI("https://www.yahoo.com"), null, null); byte[] bytes = {1, 2, 3, 4, 5}; RecordedHttpResponse recordedHttpResponse2 = new RecordedHttpResponse(200, null, null); RecordedHttpExchange recordedHttpExchange2 = new RecordedHttpExchange(recordedHttpRequest2, recordedHttpResponse2, new Date("2 Oct 2015 21:04:49 GMT")); List<RecordedHttpExchange> recordedHttpExchangeList = new ArrayList<>(); recordedHttpExchangeList.add(recordedHttpExchange1); recordedHttpExchangeList.add(recordedHttpExchange2); return new Scene("testing", null, ".", recordedHttpExchangeList); }
static Scene getMockSceneWithoutBody() throws URISyntaxException { Multimap<String, String> requestHeaders1 = LinkedHashMultimap.create(); requestHeaders1.put("request-header1", "value1"); requestHeaders1.put("request-header2", "value2, value3, value4"); Multimap<String, String> responseHeaders1 = LinkedHashMultimap.create(); responseHeaders1.put("response-header1", "value1"); responseHeaders1.put("response-header2", "value2, value3, value4"); RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest("GET", new URI("https://www.google.com"), requestHeaders1, null); RecordedHttpResponse recordedHttpResponse1 = new RecordedHttpResponse(200, responseHeaders1, null); RecordedHttpExchange recordedHttpExchange1 = new RecordedHttpExchange(recordedHttpRequest1, recordedHttpResponse1, new Date("2 Oct 2015 21:04:49 GMT")); Multimap<String, String> requestHeaders2 = LinkedHashMultimap.create(); requestHeaders2.put("request-header11", "value11"); requestHeaders2.put("request-header12", "value12, value13, value14"); Multimap<String, String> responseHeaders2 = LinkedHashMultimap.create(); responseHeaders2.put("response-header11", "value11"); responseHeaders2.put("response-header12", "value21, value31, value41"); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest("GET", new URI("https://www.yahoo.com"), requestHeaders2, null); byte[] bytes = {1, 2, 3, 4, 5}; RecordedHttpResponse recordedHttpResponse2 = new RecordedHttpResponse(200, responseHeaders2, null); RecordedHttpExchange recordedHttpExchange2 = new RecordedHttpExchange(recordedHttpRequest2, recordedHttpResponse2, new Date("2 Oct 2015 21:04:49 GMT")); List<RecordedHttpExchange> recordedHttpExchangeList = new ArrayList<>(); recordedHttpExchangeList.add(recordedHttpExchange1); recordedHttpExchangeList.add(recordedHttpExchange2); return new Scene("testing", null, ".", recordedHttpExchangeList); }
static Scene getMockSceneWithoutHeaders() throws URISyntaxException { RecordedHttpRequest recordedHttpRequest1 = new RecordedHttpRequest("GET", new URI("https://www.google.com"), null, new RecordedStringHttpBody("Hello world request is awesome")); RecordedHttpResponse recordedHttpResponse1 = new RecordedHttpResponse(200, null, new RecordedStringHttpBody("Hello world response is awesome")); RecordedHttpExchange recordedHttpExchange1 = new RecordedHttpExchange(recordedHttpRequest1, recordedHttpResponse1, new Date("2 Oct 2015 21:04:49 GMT")); RecordedHttpRequest recordedHttpRequest2 = new RecordedHttpRequest("GET", new URI("https://www.yahoo.com"), null, new RecordedStringHttpBody("Hello world request is awesome")); byte[] bytes = {1, 2, 3, 4, 5}; RecordedHttpResponse recordedHttpResponse2 = new RecordedHttpResponse(200, null, new RecordedByteHttpBody(bytes)); RecordedHttpExchange recordedHttpExchange2 = new RecordedHttpExchange(recordedHttpRequest2, recordedHttpResponse2, new Date("2 Oct 2015 21:04:49 GMT")); List<RecordedHttpExchange> recordedHttpExchangeList = new ArrayList<>(); recordedHttpExchangeList.add(recordedHttpExchange1); recordedHttpExchangeList.add(recordedHttpExchange2); return new Scene("testing", null, ".", recordedHttpExchangeList); }
new RecordedStringHttpBody("Hello world request is awesome")); RecordedHttpResponse recordedHttpResponse1 = new RecordedHttpResponse(200, responseHeaders1, new RecordedStringHttpBody("Hello world response is awesome")); RecordedHttpExchange recordedHttpExchange1 = new RecordedHttpExchange(recordedHttpRequest1, recordedHttpResponse1, new Date("2 Oct 2015 21:04:49 GMT")); byte[] bytes = {1, 2, 3, 4, 5}; RecordedHttpResponse recordedHttpResponse2 = new RecordedHttpResponse(200, responseHeaders2, new RecordedByteHttpBody(bytes)); RecordedHttpExchange recordedHttpExchange2 = new RecordedHttpExchange(recordedHttpRequest2, recordedHttpResponse2, new Date("2 Oct 2015 21:04:49 GMT"));