package org.jooby.issues;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.concurrent.Executors;
import org.jooby.test.ServerFeature;
import org.junit.Test;
public class Issue731 extends ServerFeature {
{
executor("worker1", Executors.newSingleThreadExecutor());
get("/731", deferred("worker1", req -> req.body().toOptional().orElse("nobody")));
post("/731", deferred("worker1", req -> req.body(String.class)));
post("/731/files",
deferred("worker1", req -> Files.readAllBytes(req.file("file").file().toPath())));
}
@Test
public void appShouldBeAbleToReadTheRequestBodyWhenDeferred() throws Exception {
request()
.post("/731")
.body("HelloWorld!", "text/plain")
.expect(200)
.expect("HelloWorld!");
}
@Test
public void appShouldBeAbleToReadTheFileWhenDeferred() throws Exception {
request()
.post("/731/files")
.multipart()
.file("file", "HelloWorld!".getBytes(StandardCharsets.UTF_8), "text/plain", "731.txt")
.expect(200)
.expect("HelloWorld!");
}
@Test
public void getShouldNotBeAffected() throws Exception {
request()
.get("/731")
.expect(200)
.expect("nobody");
}
}