@Override public void write(final byte[] b) throws IOException { write(b, 0, b.length); }
protected OutputStream createContentOutputStream( final long len, final SessionOutputBuffer buffer, final OutputStream outputStream, final Supplier<List<? extends Header>> trailers) { if (len >= 0) { return new ContentLengthOutputStream(buffer, outputStream, len); } else if (len == ContentLengthStrategy.CHUNKED) { final int chunkSizeHint = h1Config.getChunkSizeHint() >= 0 ? h1Config.getChunkSizeHint() : 2048; return new ChunkedOutputStream(buffer, outputStream, chunkSizeHint, trailers); } else { return new IdentityOutputStream(buffer, outputStream); } }
protected OutputStream createContentOutputStream( final long len, final SessionOutputBuffer buffer, final OutputStream outputStream, final Supplier<List<? extends Header>> trailers) { if (len >= 0) { return new ContentLengthOutputStream(buffer, outputStream, len); } else if (len == ContentLengthStrategy.CHUNKED) { final int chunkSizeHint = h1Config.getChunkSizeHint() >= 0 ? h1Config.getChunkSizeHint() : 2048; return new ChunkedOutputStream(buffer, outputStream, chunkSizeHint, trailers); } else { return new IdentityOutputStream(buffer, outputStream); } }
@Test public void testBasics() throws Exception { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); final SessionOutputBuffer outbuffer = new SessionOutputBufferImpl(16); final OutputStream out = new ContentLengthOutputStream(outbuffer, outputStream, 15L); final byte[] tmp = new byte[10]; out.write(tmp, 0, 10); out.write(1); out.write(tmp, 0, 10); out.write(tmp, 0, 10); out.write(tmp); out.write(1); out.write(2); out.flush(); out.close(); final byte[] data = outputStream.toByteArray(); Assert.assertEquals(15, data.length); }
@Override public void write(final byte[] b) throws IOException { write(b, 0, b.length); }
@Test public void testClose() throws Exception { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); final SessionOutputBuffer outbuffer = new SessionOutputBufferImpl(16); final OutputStream out = new ContentLengthOutputStream(outbuffer, outputStream, 15L); out.close(); out.close(); final byte[] tmp = new byte[10]; try { out.write(tmp); Assert.fail("StreamClosedException expected"); } catch (final StreamClosedException expected) { } try { out.write(1); Assert.fail("StreamClosedException expected"); } catch (final StreamClosedException expected) { } }