@Test public void test100ThenResponseWithContent() throws Exception { ByteBuffer header = BufferUtils.allocate(4096); ByteBuffer content0 = BufferUtils.toBuffer("Hello World! "); ByteBuffer content1 = BufferUtils.toBuffer("The quick brown fox jumped over the lazy dog. "); HttpGenerator gen = new HttpGenerator(); HttpGenerator.Result result = gen.generateResponse(HttpGenerator.CONTINUE_100_INFO, null, null, null, false); assertEquals(HttpGenerator.Result.NEED_HEADER, result); assertEquals(HttpGenerator.State.START, gen.getState()); result = gen.generateResponse(HttpGenerator.CONTINUE_100_INFO, header, null, null, false); assertEquals(HttpGenerator.Result.FLUSH, result); assertEquals(HttpGenerator.State.COMPLETING_1XX, gen.getState()); String out = BufferUtils.toString(header); result = gen.generateResponse(null, null, null, null, false); assertEquals(HttpGenerator.Result.DONE, result); assertEquals(HttpGenerator.State.START, gen.getState()); assertThat(out, containsString("HTTP/1.1 100 Continue")); result = gen.generateResponse(null, null, null, content0, false); assertEquals(HttpGenerator.Result.NEED_INFO, result); assertEquals(HttpGenerator.State.START, gen.getState()); MetaData.Response info = new MetaData.Response( HttpVersion.HTTP_1_1, 200, null, new HttpFields(), BufferUtils.length(content0) + BufferUtils.length(content1)); info.getFields().add("Last-Modified", DateGenerator.__01Jan1970); result = gen.generateResponse(info, null, null, content0, false); assertEquals(HttpGenerator.Result.NEED_HEADER, result); assertEquals(HttpGenerator.State.START, gen.getState()); result = gen.generateResponse(info, header, null, content0, false); assertEquals(HttpGenerator.Result.FLUSH, result); assertEquals(HttpGenerator.State.COMMITTED, gen.getState()); out = BufferUtils.toString(header); BufferUtils.clear(header); out += BufferUtils.toString(content0); BufferUtils.clear(content0); result = gen.generateResponse(null, null, null, content1, false); assertEquals(HttpGenerator.Result.FLUSH, result); assertEquals(HttpGenerator.State.COMMITTED, gen.getState()); out += BufferUtils.toString(content1); BufferUtils.clear(content1); result = gen.generateResponse(null, null, null, null, true); assertEquals(HttpGenerator.Result.CONTINUE, result); assertEquals(HttpGenerator.State.COMPLETING, gen.getState()); result = gen.generateResponse(null, null, null, null, true); assertEquals(HttpGenerator.Result.DONE, result); assertEquals(HttpGenerator.State.END, gen.getState()); assertThat(out, containsString("HTTP/1.1 200 OK")); assertThat(out, containsString("Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT")); assertThat(out, not(containsString("chunked"))); assertThat(out, containsString("Content-Length: 59")); assertThat( out, containsString("\r\n\r\nHello World! The quick brown fox jumped over the lazy dog. ")); }