package org.jooby; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.nio.ByteBuffer; import java.nio.CharBuffer; import org.jooby.test.ServerFeature; import org.junit.Test; public class BuiltinRendererFeature extends ServerFeature { { get("/stream", () -> new ByteArrayInputStream("stream".getBytes())); get("/bytes", () -> "bytes".getBytes()); get("/cbuffer", () -> CharBuffer.wrap("cbuffer")); get("/file", () -> new File("src/test/resources/" + BuiltinRendererFeature.class.getName().replace('.', '/') + ".txt")); get("/fchannel", () -> new FileInputStream(new File("src/test/resources/" + BuiltinRendererFeature.class.getName().replace('.', '/') + ".txt")).getChannel()); get("/reader", () -> new InputStreamReader(getClass().getResourceAsStream("BuiltinRendererFeature.txt"))); get("/ereader", () -> new InputStreamReader(getClass().getResourceAsStream("BuiltinRendererFeature.empty"))); get("/direct-buffer", () -> { ByteBuffer buffer = ByteBuffer.allocateDirect("direct-buffer".length()); buffer.put("direct-buffer".getBytes()); buffer.flip(); return buffer; }); } @Test public void stream() throws Exception { request() .get("/stream") .expect(200) .expect("stream") .header("Content-Length", 6) .header("Content-Type", "application/octet-stream"); } @Test public void reader() throws Exception { request() .get("/reader") .expect(200) .expect("reader") .header("Content-Length", 6) .header("Content-Type", "text/html;charset=utf-8"); request() .get("/ereader") .expect(200) .expect("") .header("Content-Length", 0) .header("Content-Type", "text/html;charset=utf-8"); } @Test public void file() throws Exception { request() .get("/file") .expect(200) .expect("reader") .header("Content-Length", 6) .header("Content-Type", "text/plain;charset=utf-8"); } @Test public void fchannel() throws Exception { request() .get("/fchannel") .expect(200) .expect("reader") .header("Content-Length", 6) .header("Content-Type", "application/octet-stream"); } @Test public void cbuffer() throws Exception { request() .get("/cbuffer") .expect(200) .expect("cbuffer") .header("Content-Length", 7) .header("Content-Type", "text/html;charset=utf-8"); } @Test public void bytes() throws Exception { request() .get("/bytes") .expect(200) .expect("bytes") .header("Content-Length", 5) .header("Content-Type", "application/octet-stream"); } @Test public void directBuffer() throws Exception { request() .get("/direct-buffer") .expect(200) .expect("direct-buffer") .header("Content-Length", 13) .header("Content-Type", "application/octet-stream"); } }