package org.jooby.internal.undertow;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import javax.inject.Provider;
import org.jooby.spi.HttpHandler;
import org.jooby.test.MockUnit;
import org.junit.Test;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import com.typesafe.config.ConfigValueFactory;
public class UndertowServerTest {
@SuppressWarnings("unchecked")
@Test
public void server() throws Exception {
Config config = ConfigFactory.empty()
.withValue("undertow.ioThreads", ConfigValueFactory.fromAnyRef("2"))
.withValue("undertow.workerThreads", ConfigValueFactory.fromAnyRef("1"))
.withValue("undertow.bufferSize", ConfigValueFactory.fromAnyRef("16k"))
.withValue("undertow.directBuffers", ConfigValueFactory.fromAnyRef(true))
.withValue("undertow.buffersPerRegion", ConfigValueFactory.fromAnyRef("1"))
.withValue("undertow.server.REUSE_ADDRESSES", ConfigValueFactory.fromAnyRef(true))
.withValue("undertow.server.IDLE_TIMEOUT", ConfigValueFactory.fromAnyRef("60s"))
.withValue("undertow.server.MAX_ENTITY_SIZE", ConfigValueFactory.fromAnyRef("200k"))
.withValue("undertow.socket.TCP_NODELAY", ConfigValueFactory.fromAnyRef(true))
.withValue("undertow.worker.REUSE_ADDRESSES", ConfigValueFactory.fromAnyRef(true))
.withValue("undertow.server.IGNORE_INVALID", ConfigValueFactory.fromAnyRef("bad option"))
.withValue("undertow.awaitShutdown", ConfigValueFactory.fromAnyRef(1000))
.withValue("application.port", ConfigValueFactory.fromAnyRef(6789))
.withValue("application.host", ConfigValueFactory.fromAnyRef("0.0.0.0"))
.withValue("server.http2.enabled", ConfigValueFactory.fromAnyRef(false));
new MockUnit(HttpHandler.class, Provider.class)
.run(unit -> {
UndertowServer server = new UndertowServer(unit.get(HttpHandler.class), config,
unit.get(Provider.class));
try {
assertNotNull(server.executor());
server.start();
assertTrue(server.executor().isPresent());
server.join();// NOOP
} finally {
server.stop();
}
});
}
}