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;
}
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();
}
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();
}
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();
}
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();
}
Aggregations