/** * Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/> * * All rights reserved. Licensed under the OSI BSD License. * * http://www.opensource.org/licenses/bsd-license.php */ package com.barchart.udt.nio; import static org.junit.Assert.*; import java.nio.channels.SelectionKey; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.slf4j.LoggerFactory; import util.TestAny; import ch.qos.logback.classic.Level; import ch.qos.logback.classic.Logger; import com.barchart.udt.EpollUDT; /** FIXME */ @Ignore public class TestSelectionKeyUDT extends TestAny { @BeforeClass public static void startup() throws Exception { final Logger root = (Logger) LoggerFactory .getLogger(Logger.ROOT_LOGGER_NAME); root.setLevel(Level.ERROR); } @AfterClass public static void shutdown() throws Exception { final Logger root = (Logger) LoggerFactory .getLogger(Logger.ROOT_LOGGER_NAME); root.setLevel(Level.DEBUG); } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } @Test public void testAccept() throws Exception { final SelectorProviderUDT provider = SelectorProviderUDT.DATAGRAM; final SelectorUDT selector = provider.openSelector(); final ChannelUDT channel = provider.openServerSocketChannel(); final SelectionKeyUDT keyUDT = // new SelectionKeyUDT(selector, channel, null); assertTrue(keyUDT.isValid()); assertEquals(EpollUDT.Opt.NONE, keyUDT.epollOpt()); keyUDT.interestOps(SelectionKey.OP_ACCEPT); assertEquals(EpollUDT.Opt.READ, keyUDT.epollOpt()); assertTrue("accept valid", keyUDT.doRead(1)); assertFalse("invalid accept", keyUDT.doWrite(1)); selector.close(); } @Test public void testConnect() throws Exception { final SelectorProviderUDT provider = SelectorProviderUDT.DATAGRAM; final SelectorUDT selector = provider.openSelector(); final ChannelUDT channel = provider.openSocketChannel(); final SelectionKeyUDT keyUDT = // new SelectionKeyUDT(selector, channel, null); assertTrue(keyUDT.isValid()); assertEquals(EpollUDT.Opt.NONE, keyUDT.epollOpt()); // assertFalse("not connect", keyUDT.isBeyondConnect()); keyUDT.interestOps(SelectionKey.OP_CONNECT); assertEquals(EpollUDT.Opt.WRITE, keyUDT.epollOpt()); assertFalse("surious read", keyUDT.doRead(1)); assertTrue("connect 1 ok", keyUDT.doWrite(1)); // assertTrue("connected", keyUDT.isBeyondConnect()); assertFalse("connect 2 fail", keyUDT.doWrite(2)); // assertTrue("connected", keyUDT.isBeyondConnect()); selector.close(); } @Test public void testRead() throws Exception { final SelectorProviderUDT provider = SelectorProviderUDT.DATAGRAM; final SelectorUDT selector = provider.openSelector(); final ChannelUDT channel = provider.openSocketChannel(); final SelectionKeyUDT keyUDT = // new SelectionKeyUDT(selector, channel, null); assertTrue(keyUDT.isValid()); assertEquals(EpollUDT.Opt.NONE, keyUDT.epollOpt()); // assertFalse("not connect", keyUDT.isBeyondConnect()); keyUDT.interestOps(SelectionKey.OP_READ | SelectionKey.OP_CONNECT); assertEquals(EpollUDT.Opt.BOTH, keyUDT.epollOpt()); assertTrue("connect ok", keyUDT.doWrite(1)); // assertTrue("connected", keyUDT.isBeyondConnect()); assertTrue("valid read 1", keyUDT.doRead(2)); assertTrue("valid read 2", keyUDT.doRead(3)); assertFalse("surious write", keyUDT.doWrite(4)); selector.close(); } @Test public void testWrite() throws Exception { final SelectorProviderUDT provider = SelectorProviderUDT.DATAGRAM; final SelectorUDT selector = provider.openSelector(); final ChannelUDT channel = provider.openSocketChannel(); final SelectionKeyUDT keyUDT = // new SelectionKeyUDT(selector, channel, null); assertTrue(keyUDT.isValid()); assertEquals(EpollUDT.Opt.NONE, keyUDT.epollOpt()); // assertFalse("not connect", keyUDT.isBeyondConnect()); keyUDT.interestOps(SelectionKey.OP_WRITE | SelectionKey.OP_CONNECT); assertEquals(EpollUDT.Opt.WRITE, keyUDT.epollOpt()); assertTrue("connect ok", keyUDT.doWrite(1)); // assertTrue("connected", keyUDT.isBeyondConnect()); assertTrue("valid write 1", keyUDT.doWrite(2)); assertTrue("valid write 2", keyUDT.doWrite(3)); assertFalse("surious read", keyUDT.doRead(4)); selector.close(); } }