package io.craft.atom.nio; import io.craft.atom.io.AbstractIoHandler; import io.craft.atom.io.Channel; import io.craft.atom.io.IoAcceptor; import io.craft.atom.io.IoHandler; import io.craft.atom.nio.api.NioFactory; import io.craft.atom.nio.api.NioTcpAcceptorBuilder; import io.craft.atom.test.AvailablePortFinder; import io.craft.atom.test.CaseCounter; import junit.framework.Assert; import org.junit.Test; /** * Test for nio timeout config * * @author mindwind * @version 1.0, Sep 5, 2014 */ public class TestNioTimeout { @Test public void testMaxIntegerTimeout() { try { int port = AvailablePortFinder.getNextAvailable(); NioTcpAcceptorBuilder builder = NioFactory.newTcpAcceptorBuilder(new NioAcceptorHandler()); IoAcceptor acceptor = builder.ioTimeoutInMillis(Integer.MAX_VALUE).build(); acceptor.bind(port); } catch (Throwable t) { Assert.fail(); } Assert.assertTrue(true); System.out.println(String.format("[CRAFT-ATOM-NIO] (^_^) <%s> Case -> test max integer timeout. ", CaseCounter.incr(1))); } @Test public void testLessOneHundredMillisecondsTimeout() { try { int port = AvailablePortFinder.getNextAvailable(); IoHandler handler = new AbstractIoHandler() { @Override public void channelIdle(Channel<byte[]> channel) { super.channelIdle(channel); channel.close(); } }; NioTcpAcceptorBuilder builder = NioFactory.newTcpAcceptorBuilder(handler); IoAcceptor acceptor = builder.ioTimeoutInMillis(50).build(); acceptor.bind(port); } catch (Throwable t) { t.printStackTrace(); Assert.fail(); } Assert.assertTrue(true); System.out.println(String.format("[CRAFT-ATOM-NIO] (^_^) <%s> Case -> test less one hundred milliseconds timeout. ", CaseCounter.incr(1))); } }