@Test public void testMethod() throws IOException { handler = (request, response) -> response.setBody(request.method().name()); System.out.println("get"); Assert.assertEquals("GET", makeRequest("/").get().asString()); System.out.println("post"); Assert.assertEquals("POST", makeRequest("/").post().asString()); System.out.println("put"); Assert.assertEquals("PUT", makeRequest("/").method(ConnectionMethod.PUT).execute().asString()); System.out.println("delete"); Assert.assertEquals("DELETE", makeRequest("/").method(ConnectionMethod.DELETE).execute().asString()); }
@Test public void test_allowGetAndDelete() throws IOException { handler = new UrlHandler() .append("/rest", new RestHandler() .get( (request, response) -> response.setBody("get") ) .delete( (request, response) -> response.setBody("delete") )) ; Assert.assertEquals("get", makeRequest("/rest").get().asString()); Assert.assertEquals("delete", makeRequest("/rest").method(ConnectionMethod.DELETE).execute().asString()); Assert.assertEquals(405, makeRequest("/rest").post().getResponseCode()); Assert.assertEquals("GET, HEAD, DELETE, OPTIONS", makeRequest("/rest").post().header("Allow")); }
Assert.assertEquals("ONE", makeRequest("/enum_def").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/bytes").addByteArray("v", new byte[]{1, 2, 3}, "v").post().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/file").addByteArray("v", "[1, 2, 3]".getBytes(), "v").post().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/bytes_opt").addByteArray("v", new byte[]{1, 2, 3}, "v").post().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/file_opt").addByteArray("v", "[1, 2, 3]".getBytes(), "v").post().asString()); Assert.assertEquals("default", makeRequest("/bytes_opt").addByteArray("vv", new byte[]{1, 2, 3}, "vv").post().asString()); Assert.assertEquals("default", makeRequest("/file_opt").addByteArray("vv", "[1, 2, 3]".getBytes(), "vv").post().asString()); Assert.assertEquals("i=1", makeRequest("/pojo").json(JsonTools.serialize(With.with(new TestParametersPojo(), it -> it.i = 1))).post().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/double_multipart").addByteArray("v", new byte[]{1, 2, 3}, "v").post().asString());
Assert.assertEquals("a", makeRequest("/char").param("v", 'a').get().asString()); Assert.assertEquals("1", makeRequest("/int").param("v", 1).post().asString()); Assert.assertEquals("1", makeRequest("/long").param("v", 1).post().asString()); Assert.assertEquals("1", makeRequest("/short").param("v", 1).post().asString()); Assert.assertEquals("1", makeRequest("/byte").param("v", 1).post().asString()); Assert.assertEquals("1.0", makeRequest("/float").param("v", 1).post().asString()); Assert.assertEquals("1.0", makeRequest("/double").param("v", 1).post().asString()); Assert.assertEquals("true", makeRequest("/boolean").param("v", true).post().asString()); Assert.assertEquals("a", makeRequest("/char").param("v", 'a').post().asString()); Assert.assertEquals("1", makeRequest("/int").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("1", makeRequest("/long").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("1", makeRequest("/short").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("1", makeRequest("/byte").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("1.0", makeRequest("/float").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("1.0", makeRequest("/double").param("v", 1).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("true", makeRequest("/boolean").param("v", true).addByteArray("data", new byte[0], "data").post().asString()); Assert.assertEquals("a", makeRequest("/char").param("v", 'a').addByteArray("data", new byte[0], "data").post().asString());
@Test public void testEmptyValues() throws IOException { handler = new MultipartHandler((request, response) -> { Assert.assertEquals(null, request.data()); Assert.assertEquals(true, request.isMultipart()); MultiPartEntry entry = request.entry("data"); String value = entry.asString(); Assert.assertEquals("", value); Assert.assertEquals("", entry.fileName()); MultiPartEntry empty = request.entry("empty"); Assert.assertEquals(0, empty.asBytes().length); Assert.assertEquals("", empty.fileName()); Assert.assertEquals("", request.param("foo")); return response.setBody("ok"); }); Assert.assertEquals("ok", makeRequest("/") .param("foo", "") .addByteArray("data", "".getBytes(), "") .addByteArray("empty", new byte[0], "") .param("foofoo", "") .post().asString()); }
@Test public void test_allowPostAndPut() throws IOException { handler = new UrlHandler() .append("/rest", new RestHandler() .post( (request, response) -> response.setBody("post") ) .put( (request, response) -> response.setBody("put") )) ; Assert.assertEquals("post", makeRequest("/rest").post().asString()); Assert.assertEquals("put", makeRequest("/rest").method(ConnectionMethod.PUT).execute().asString()); Assert.assertEquals(405, makeRequest("/rest").get().getResponseCode()); Assert.assertEquals("POST, PUT, OPTIONS", makeRequest("/rest").get().header("Allow")); Assert.assertEquals("POST, PUT, OPTIONS", makeRequest("/rest").options().header("Allow")); }