package org.jooby.spec; import static org.junit.Assert.assertEquals; import java.io.File; import java.nio.file.Path; import org.junit.Test; import apps.App611; public class Issue611Test extends RouteSpecTest { private Path basedir = new File(System.getProperty("user.dir")).toPath(); @Test public void postWithQueryParamereters() throws Exception { routes(new RouteProcessor().process(new App611(), basedir)) .next(r -> { assertEquals("POST", r.method()); assertEquals("/friends/email", r.pattern()); params(r.params()) .next(p -> { assertEquals("userId", p.name()); assertEquals("User ID.", p.doc().get()); assertEquals(RouteParamType.QUERY, p.paramType()); assertEquals(false, p.optional()); assertEquals(Long.class, p.type()); }) .next(p -> { assertEquals("context", p.name()); assertEquals("Context value.", p.doc().get()); assertEquals(RouteParamType.QUERY, p.paramType()); assertEquals(true, p.optional()); assertEquals("java.util.Optional<java.lang.String>", p.type().getTypeName()); }).next(p -> { assertEquals("emails", p.name()); assertEquals("{@link List} of {@link String mails}.", p.doc().get()); assertEquals(RouteParamType.BODY, p.paramType()); assertEquals(false, p.optional()); assertEquals("java.util.List<java.lang.String>", p.type().getTypeName()); }); RouteResponse rsp = r.response(); assertEquals("java.util.List<org.jooby.spec.User611>", rsp.type().getTypeName()); assertEquals("Returns a {@link List} of {@link User611}.", rsp.doc().get()); }); } }