Search in sources :

Example 1 with EzyNioUdpReader

use of com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader in project ezyfox-server by youngmonkeys.

the class EzyUdpServerBootstrap method newReadingLoopHandler.

private EzySocketEventLoopHandler newReadingLoopHandler() {
    EzySocketEventLoopOneHandler loopHandler = new EzyNioUdpReadingLoopHandler();
    loopHandler.setThreadPoolSize(getSocketReaderPoolSize());
    EzyNioUdpReader eventHandler = new EzyNioUdpReader(getUdpMaxRequestSize());
    eventHandler.setOwnSelector(readSelector);
    eventHandler.setUdpDataHandler(udpDataHandler);
    loopHandler.setEventHandler(eventHandler);
    return loopHandler;
}
Also used : EzySocketEventLoopOneHandler(com.tvd12.ezyfoxserver.socket.EzySocketEventLoopOneHandler) EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) EzyNioUdpReadingLoopHandler(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReadingLoopHandler)

Example 2 with EzyNioUdpReader

use of com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader in project ezyfox-server by youngmonkeys.

the class EzyNioUdpReaderTest method testAddressNull.

@Test
public void testAddressNull() throws Exception {
    EzyNioUdpReader reader = new EzyNioUdpReader(1);
    Selector selector = spy(Selector.class);
    when(selector.select()).thenReturn(1);
    reader.setOwnSelector(selector);
    EzyNioUdpDataHandler dataHandler = mock(EzyNioUdpDataHandler.class);
    reader.setUdpDataHandler(dataHandler);
    SelectionKey selectionKey = spy(SelectionKey.class);
    when(selector.selectedKeys()).thenReturn(Sets.newHashSet(selectionKey));
    when(selectionKey.isValid()).thenReturn(true);
    when(selectionKey.readyOps()).thenReturn(SelectionKey.OP_READ);
    MyDatagramChannel channel = mock(MyDatagramChannel.class);
    when(selectionKey.channel()).thenReturn(channel);
    reader.handleEvent();
}
Also used : EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) EzyNioUdpDataHandler(com.tvd12.ezyfoxserver.nio.handler.EzyNioUdpDataHandler) Test(org.testng.annotations.Test)

Example 3 with EzyNioUdpReader

use of com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader in project ezyfox-server by youngmonkeys.

the class EzyNioUdpReaderTest method processReadyKeysKeyInvalid.

@Test
public void processReadyKeysKeyInvalid() {
    // given
    Selector ownSelector = mock(Selector.class);
    EzyNioUdpReader sut = new EzyNioUdpReader(1024);
    sut.setOwnSelector(ownSelector);
    SelectionKey selectionKey = mock(SelectionKey.class);
    when(selectionKey.isValid()).thenReturn(false);
    Set<SelectionKey> selectionKeys = Sets.newHashSet(selectionKey);
    when(ownSelector.selectedKeys()).thenReturn(selectionKeys);
    // when
    MethodUtil.invokeMethod("processReadyKeys", sut);
    // then
    verify(selectionKey, times(1)).isValid();
}
Also used : EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) Test(org.testng.annotations.Test)

Example 4 with EzyNioUdpReader

use of com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader in project ezyfox-server by youngmonkeys.

the class EzyNioUdpReaderTest method testCancelledKeyExceptionCase.

@Test
public void testCancelledKeyExceptionCase() throws Exception {
    EzyNioUdpReader reader = new EzyNioUdpReader(1);
    Selector selector = spy(Selector.class);
    when(selector.select()).thenReturn(1);
    reader.setOwnSelector(selector);
    EzyNioUdpDataHandler dataHandler = mock(EzyNioUdpDataHandler.class);
    reader.setUdpDataHandler(dataHandler);
    SelectionKey selectionKey = spy(SelectionKey.class);
    when(selector.selectedKeys()).thenReturn(Sets.newHashSet(selectionKey));
    when(selectionKey.isValid()).thenReturn(true);
    when(selectionKey.readyOps()).thenReturn(SelectionKey.OP_READ);
    MyDatagramChannel channel = mock(MyDatagramChannel.class);
    when(selectionKey.channel()).thenReturn(channel);
    when(channel.receive(any(ByteBuffer.class))).thenThrow(new CancelledKeyException());
    reader.handleEvent();
}
Also used : EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) EzyNioUdpDataHandler(com.tvd12.ezyfoxserver.nio.handler.EzyNioUdpDataHandler) ByteBuffer(java.nio.ByteBuffer) Test(org.testng.annotations.Test)

Example 5 with EzyNioUdpReader

use of com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader in project ezyfox-server by youngmonkeys.

the class EzyNioUdpReaderTest method test.

@Test
public void test() throws Exception {
    EzyNioUdpReader reader = new EzyNioUdpReader(1);
    Selector selector = spy(Selector.class);
    when(selector.select()).thenReturn(1);
    reader.setOwnSelector(selector);
    EzyNioUdpDataHandler dataHandler = mock(EzyNioUdpDataHandler.class);
    reader.setUdpDataHandler(dataHandler);
    SelectionKey selectionKey = spy(SelectionKey.class);
    when(selector.selectedKeys()).thenReturn(Sets.newHashSet(selectionKey));
    when(selectionKey.isValid()).thenReturn(true);
    when(selectionKey.readyOps()).thenReturn(SelectionKey.OP_READ);
    MyDatagramChannel channel = mock(MyDatagramChannel.class);
    when(selectionKey.channel()).thenReturn(channel);
    when(channel.receive(any(ByteBuffer.class))).thenAnswer((Answer<InetSocketAddress>) invocation -> {
        ByteBuffer buffer = invocation.getArgumentAt(0, ByteBuffer.class);
        buffer.put((byte) 0);
        return new InetSocketAddress(12346);
    });
    reader.handleEvent();
}
Also used : Sets(com.tvd12.ezyfox.collect.Sets) EzyNioUdpDataHandler(com.tvd12.ezyfoxserver.nio.handler.EzyNioUdpDataHandler) Set(java.util.Set) MethodUtil(com.tvd12.test.reflect.MethodUtil) Test(org.testng.annotations.Test) IOException(java.io.IOException) java.nio.channels(java.nio.channels) InetSocketAddress(java.net.InetSocketAddress) ByteBuffer(java.nio.ByteBuffer) EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) Matchers.any(org.mockito.Matchers.any) Answer(org.mockito.stubbing.Answer) Mockito(org.mockito.Mockito) SelectorProvider(java.nio.channels.spi.SelectorProvider) MethodInvoker(com.tvd12.test.reflect.MethodInvoker) InetSocketAddress(java.net.InetSocketAddress) EzyNioUdpReader(com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader) EzyNioUdpDataHandler(com.tvd12.ezyfoxserver.nio.handler.EzyNioUdpDataHandler) ByteBuffer(java.nio.ByteBuffer) Test(org.testng.annotations.Test)

Aggregations

EzyNioUdpReader (com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReader)10 Test (org.testng.annotations.Test)9 EzyNioUdpDataHandler (com.tvd12.ezyfoxserver.nio.handler.EzyNioUdpDataHandler)6 ByteBuffer (java.nio.ByteBuffer)5 IOException (java.io.IOException)2 InetSocketAddress (java.net.InetSocketAddress)2 Sets (com.tvd12.ezyfox.collect.Sets)1 EzyNioUdpReadingLoopHandler (com.tvd12.ezyfoxserver.nio.udp.EzyNioUdpReadingLoopHandler)1 EzySocketEventLoopOneHandler (com.tvd12.ezyfoxserver.socket.EzySocketEventLoopOneHandler)1 MethodInvoker (com.tvd12.test.reflect.MethodInvoker)1 MethodUtil (com.tvd12.test.reflect.MethodUtil)1 java.nio.channels (java.nio.channels)1 SelectorProvider (java.nio.channels.spi.SelectorProvider)1 Set (java.util.Set)1 Matchers.any (org.mockito.Matchers.any)1 Mockito (org.mockito.Mockito)1 Answer (org.mockito.stubbing.Answer)1