@Test public void test_parameters_collection() throws IOException { Class<? extends Controller> controller = TestParametersCollectionBoxedController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").param("v", true).param("v", false).param("v", true).get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").param("v", 'a').param("v", 'b').param("v", 'c').get().asString()); }
@Test public void test_parameters_array_boxed() throws IOException { Class<? extends Controller> controller = TestParametersArrayBoxedController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").param("v", true).param("v", false).param("v", true).get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").param("v", 'a').param("v", 'b').param("v", 'c').get().asString()); }
@Test public void test_parameters_array_primitives() throws IOException { Class<? extends Controller> controller = TestParametersArrayPrimitivesController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").param("v", true).param("v", false).param("v", true).get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").param("v", 'a').param("v", 'b').param("v", 'c').get().asString()); }
@Test public void test_parameters_collection_other() throws IOException { Class<? extends Controller> controller = TestParametersCollectionOtherController.class; server.getUrlMapping() .append("/string", controller, "test_string") .append("/string_def", controller, "test_string_def") .append("/enum", controller, "test_enum") .append("/enum_def", controller, "test_enum_def") ; Assert.assertEquals("[a, b, c]", makeRequest("/string").param("v", "a").param("v", "b").param("v", "c").get().asString()); Assert.assertEquals("null", makeRequest("/string").get().asString()); Assert.assertEquals("[d, e, f]", makeRequest("/string_def").param("v", "d").param("v", "e").param("v", "f").get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/string_def").get().asString()); Assert.assertEquals("[ONE, TWO, THREE]", makeRequest("/enum").param("v", "ONE").param("v", "TWO").param("v", "THREE").get().asString()); Assert.assertEquals("null", makeRequest("/enum").get().asString()); Assert.assertEquals("[ONE, TWO, THREE]", makeRequest("/enum_def").param("v", "ONE").param("v", "TWO").param("v", "THREE").get().asString()); Assert.assertEquals("[ONE, TWO]", makeRequest("/enum_def").get().asString()); }
@Test public void test_parameters_array_other() throws IOException { Class<? extends Controller> controller = TestParametersArrayOtherController.class; server.getUrlMapping() .append("/string", controller, "test_string") .append("/string_def", controller, "test_string_def") .append("/enum", controller, "test_enum") .append("/enum_def", controller, "test_enum_def") ; Assert.assertEquals("[a, b, c]", makeRequest("/string").param("v", "a").param("v", "b").param("v", "c").get().asString()); Assert.assertEquals("null", makeRequest("/string").get().asString()); Assert.assertEquals("[d, e, f]", makeRequest("/string_def").param("v", "d").param("v", "e").param("v", "f").get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/string_def").get().asString()); Assert.assertEquals("[ONE, TWO, THREE]", makeRequest("/enum").param("v", "ONE").param("v", "TWO").param("v", "THREE").get().asString()); Assert.assertEquals("null", makeRequest("/enum").get().asString()); Assert.assertEquals("[ONE, TWO, THREE]", makeRequest("/enum_def").param("v", "ONE").param("v", "TWO").param("v", "THREE").get().asString()); Assert.assertEquals("[ONE, TWO]", makeRequest("/enum_def").get().asString()); }
@Test public void test_parameters_collection_boxed_with_defaults() throws IOException { Class<? extends Controller> controller = TestParametersCollectionBoxedWithDefaultsController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/int").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/long").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/short").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/byte").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/float").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/double").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[false, true, false]", makeRequest("/boolean").param("v", false).param("v", true).param("v", false).get().asString()); Assert.assertEquals("[d, e, f]", makeRequest("/char").param("v", 'd').param("v", 'e').param("v", 'f').get().asString()); }
@Test public void test_parameters_array_boxed_with_defaults() throws IOException { Class<? extends Controller> controller = TestParametersArrayBoxedWithDefaultsController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/int").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/long").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/short").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/byte").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/float").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/double").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[false, true, false]", makeRequest("/boolean").param("v", false).param("v", true).param("v", false).get().asString()); Assert.assertEquals("[d, e, f]", makeRequest("/char").param("v", 'd').param("v", 'e').param("v", 'f').get().asString()); }
@Test public void test_parameters_array_primitives_with_defaults() throws IOException { Class<? extends Controller> controller = TestParametersArrayPrimitivesWithDefaultsController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("[1, 2, 3]", makeRequest("/int").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/long").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/short").get().asString()); Assert.assertEquals("[1, 2, 3]", makeRequest("/byte").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/float").get().asString()); Assert.assertEquals("[1.0, 2.0, 3.0]", makeRequest("/double").get().asString()); Assert.assertEquals("[true, false, true]", makeRequest("/boolean").get().asString()); Assert.assertEquals("[a, b, c]", makeRequest("/char").get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/int").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/long").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/short").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4, 5, 6]", makeRequest("/byte").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/float").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[4.0, 5.0, 6.0]", makeRequest("/double").param("v", 4).param("v", 5).param("v", 6).get().asString()); Assert.assertEquals("[false, true, false]", makeRequest("/boolean").param("v", false).param("v", true).param("v", false).get().asString()); Assert.assertEquals("[d, e, f]", makeRequest("/char").param("v", 'd').param("v", 'e').param("v", 'f').get().asString()); }
Assert.assertEquals("ArrayList: [1, 2, 3]", makeRequest("/list").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("ArrayList: [1, 2, 3]", makeRequest("/list_def").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("ArrayList: [4, 5, 6]", makeRequest("/list_def").get().asString()); Assert.assertEquals("HashSet: [1, 2, 3]", makeRequest("/set").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("HashSet: [1, 2, 3]", makeRequest("/set_def").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("HashSet: [4, 5, 6]", makeRequest("/set_def").get().asString()); Assert.assertEquals("LinkedList: [1, 2, 3]", makeRequest("/ll").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("LinkedList: [1, 2, 3]", makeRequest("/ll_def").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("LinkedList: [4, 5, 6]", makeRequest("/ll_def").get().asString()); Assert.assertEquals("TreeSet: [1, 2, 3]", makeRequest("/ts").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("TreeSet: [1, 2, 3]", makeRequest("/ts_def").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("TreeSet: [4, 5, 6]", makeRequest("/ts_def").get().asString()); Assert.assertEquals("ArrayList: [1, 2, 3]", makeRequest("/i").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("ArrayList: [1, 2, 3]", makeRequest("/i_def").param("v", 1).param("v", 2).param("v", 3).get().asString()); Assert.assertEquals("ArrayList: [4, 5, 6]", makeRequest("/i_def").get().asString());
@Test public void test_parameters_1() throws IOException { server.getUrlMapping() .append("/test_1", TestParametersController.class, "test_1"); Assert.assertEquals("1", makeRequest("/test_1").param("i", 1).get().asString()); Assert.assertEquals("2", makeRequest("/test_1").param("i", 2).get().asString()); server.getUrlMapping() .append("/test_2", TestParametersController.class, "test_2"); Assert.assertEquals("1", makeRequest("/test_2").param("i", 1).get().asString()); Assert.assertEquals("2", makeRequest("/test_2").param("i", 2).get().asString()); Assert.assertEquals("-1", makeRequest("/test_2").get().asString()); }
@Test public void test_params() { handler = new UrlHandler() .append("/", (request, response) -> response.setBody(request.param("foo") + " " + request.param("bar"))); HttpServer<HttpConnection> proxy = new HttpServer<>(null, port + 1, context, 0); proxy.getUrlMapping() .append("/", new ProxyHandler("localhost", port)); proxy.setIoThreadsCount(1); proxy.start(); try { Thread.sleep(25); Assert.assertEquals("null null", makeRequest("/", port + 1).get().asString()); Assert.assertEquals("foo null", makeRequest("/", port + 1).param("foo", "foo").get().asString()); Assert.assertEquals("null bar", makeRequest("/", port + 1).param("bar", "bar").get().asString()); Assert.assertEquals("foo bar", makeRequest("/", port + 1).param("foo", "foo").param("bar", "bar").get().asString()); } catch (Exception e) { e.printStackTrace(); assert false; } finally { proxy.close(); } }
Assert.assertEquals("1", makeRequest("/int").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/long").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/short").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/byte").param("v", 1).get().asString()); Assert.assertEquals("1.0", makeRequest("/float").param("v", 1).get().asString()); Assert.assertEquals("1.0", makeRequest("/double").param("v", 1).get().asString()); Assert.assertEquals("true", makeRequest("/boolean").param("v", true).get().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()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/int").param("v", "a").get()); checkResponse(400, "{\"messages\":[\"java.lang.NullPointerException: parameter 'v' is not present\"]}", makeRequest("/long").get());
Assert.assertEquals("1", makeRequest("/int").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/long").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/short").param("v", 1).get().asString()); Assert.assertEquals("1", makeRequest("/byte").param("v", 1).get().asString()); Assert.assertEquals("1.0", makeRequest("/float").param("v", 1).get().asString()); Assert.assertEquals("1.0", makeRequest("/double").param("v", 1).get().asString()); Assert.assertEquals("true", makeRequest("/boolean").param("v", true).get().asString()); Assert.assertEquals("a", makeRequest("/char").param("v", 'a').get().asString()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/int").param("v", "a").get()); checkResponse(200, "null", makeRequest("/long").get()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/long").param("v", "a").get()); checkResponse(200, "null", makeRequest("/short").get()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/short").param("v", "a").get()); checkResponse(200, "null", makeRequest("/byte").get()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/byte").param("v", "a").get()); checkResponse(200, "null", makeRequest("/float").get()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/float").param("v", "a").get()); checkResponse(200, "null", makeRequest("/double").get()); checkResponse(400, "{\"messages\":[\"java.lang.NumberFormatException: For input string: \\\"a\\\"\"]}", makeRequest("/double").param("v", "a").get()); checkResponse(200, "null", makeRequest("/boolean").get()); checkResponse(200, "null", makeRequest("/char").get()); checkResponse(400, "{\"messages\":[\"java.lang.IllegalArgumentException: Can't assign to char String with more then 1 character\"]}", makeRequest("/char").param("v", "abc").get());
@Test public void test_multipart_1() throws IOException { handler = new MultipartHandler((request, response) -> { String foo = request.entry("foo").asString(); String bar = request.entry("bar").asString(); String fileMD5 = MD5.create().update(request.entry("file").asBytes()).asString(); return response.setBody(foo + "-" + bar + "-" + fileMD5); }); byte[] data = new byte[2 * 1024 * 1024]; new Random().nextBytes(data); for (int i = 0; i < 10; i++) { com.wizzardo.tools.http.Response response = makeRequest("/") .param("foo", "foo") .param("bar", "bar") .addByteArray("file", data, "file") .execute(); Assert.assertEquals(200, response.getResponseCode()); Assert.assertEquals("foo-bar-" + MD5.create().update(data).asString(), response.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_parameters_primitives_with_defaults() throws IOException { Class<? extends Controller> controller = TestParametersPrimitivesWithDefaultsController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("1", makeRequest("/int").get().asString()); Assert.assertEquals("1", makeRequest("/long").get().asString()); Assert.assertEquals("1", makeRequest("/short").get().asString()); Assert.assertEquals("1", makeRequest("/byte").get().asString()); Assert.assertEquals("1.0", makeRequest("/float").get().asString()); Assert.assertEquals("1.0", makeRequest("/double").get().asString()); Assert.assertEquals("true", makeRequest("/boolean").get().asString()); Assert.assertEquals("a", makeRequest("/char").get().asString()); Assert.assertEquals("2", makeRequest("/int").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/long").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/short").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/byte").param("v", 2).get().asString()); Assert.assertEquals("2.0", makeRequest("/float").param("v", 2).get().asString()); Assert.assertEquals("2.0", makeRequest("/double").param("v", 2).get().asString()); Assert.assertEquals("false", makeRequest("/boolean").param("v", false).get().asString()); Assert.assertEquals("b", makeRequest("/char").param("v", 'b').get().asString()); }
@Test public void test_parameters_boxed_with_defaults() throws IOException { Class<? extends Controller> controller = TestParametersBoxedWithDefaultsController.class; server.getUrlMapping() .append("/int", controller, "test_int") .append("/long", controller, "test_long") .append("/short", controller, "test_short") .append("/byte", controller, "test_byte") .append("/boolean", controller, "test_boolean") .append("/float", controller, "test_float") .append("/double", controller, "test_double") .append("/char", controller, "test_char") ; Assert.assertEquals("1", makeRequest("/int").get().asString()); Assert.assertEquals("1", makeRequest("/long").get().asString()); Assert.assertEquals("1", makeRequest("/short").get().asString()); Assert.assertEquals("1", makeRequest("/byte").get().asString()); Assert.assertEquals("1.0", makeRequest("/float").get().asString()); Assert.assertEquals("1.0", makeRequest("/double").get().asString()); Assert.assertEquals("true", makeRequest("/boolean").get().asString()); Assert.assertEquals("a", makeRequest("/char").get().asString()); Assert.assertEquals("2", makeRequest("/int").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/long").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/short").param("v", 2).get().asString()); Assert.assertEquals("2", makeRequest("/byte").param("v", 2).get().asString()); Assert.assertEquals("2.0", makeRequest("/float").param("v", 2).get().asString()); Assert.assertEquals("2.0", makeRequest("/double").param("v", 2).get().asString()); Assert.assertEquals("false", makeRequest("/boolean").param("v", false).get().asString()); Assert.assertEquals("b", makeRequest("/char").param("v", 'b').get().asString()); }
Assert.assertEquals("string", makeRequest("/string").param("v", "string").get().asString()); Assert.assertEquals("null", makeRequest("/string").get().asString()); Assert.assertEquals("string", makeRequest("/string_def").param("v", "string").get().asString()); Assert.assertEquals("default", makeRequest("/string_def").get().asString()); Assert.assertEquals("TWO", makeRequest("/enum").param("v", "TWO").get().asString()); Assert.assertEquals("null", makeRequest("/enum").get().asString()); Assert.assertEquals("TWO", makeRequest("/enum_def").param("v", "TWO").get().asString()); Assert.assertEquals("ONE", makeRequest("/enum_def").get().asString()); Assert.assertEquals("default", makeRequest("/file_opt").addByteArray("vv", "[1, 2, 3]".getBytes(), "vv").post().asString()); Assert.assertEquals("i=1", makeRequest("/pojo").param("i", "1").get().asString()); Assert.assertEquals("i=0", makeRequest("/pojo").get().asString()); Assert.assertEquals("i=1", makeRequest("/pojo").json(JsonTools.serialize(With.with(new TestParametersPojo(), it -> it.i = 1))).post().asString());
@Test public void testBasicAuthToken() throws IOException { TokenFilter tokenFilter = new TokenFilter(new BasicAuthFilter()); handler = (request, response) -> { if (request.param("token") != null) return response.setBody("ok"); else return response.setBody(tokenFilter.generateToken(request)); }; String user = "user"; String password = "password"; server.getFiltersMapping().addBefore("/*", tokenFilter.allow(user, password)); Assert.assertEquals(401, makeRequest("").get().getResponseCode()); String token = makeRequest("").setBasicAuthentication(user, password).get().asString(); Assert.assertNotNull(token); Assert.assertEquals("ok", makeRequest("").param("token", token).get().asString()); }