1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.testsuite.transport;
17
18 import io.netty.channel.Channel;
19 import io.netty.channel.DefaultEventLoopGroup;
20 import io.netty.channel.EventLoopGroup;
21 import io.netty.channel.ServerChannel;
22 import io.netty.channel.SingleThreadEventLoop;
23 import io.netty.channel.local.LocalChannel;
24 import io.netty.channel.local.LocalServerChannel;
25 import org.junit.jupiter.api.Test;
26 import org.junit.jupiter.api.Timeout;
27 import org.junit.jupiter.api.function.Executable;
28 import java.util.concurrent.TimeUnit;
29
30 import static org.junit.jupiter.api.Assertions.assertThrows;
31
32 public class DefaultEventLoopTest extends AbstractSingleThreadEventLoopTest {
33
34 @Test
35 @Timeout(value = 3000, unit = TimeUnit.MILLISECONDS)
36 public void testChannelsIteratorNotSupported() throws Exception {
37 EventLoopGroup group = newEventLoopGroup();
38 final SingleThreadEventLoop loop = (SingleThreadEventLoop) group.next();
39 try {
40 final Channel ch = newChannel();
41 loop.register(ch).syncUninterruptibly();
42
43 assertThrows(UnsupportedOperationException.class, new Executable() {
44 @Override
45 public void execute() throws Throwable {
46 loop.registeredChannelsIterator();
47 }
48 });
49 } finally {
50 group.shutdownGracefully();
51 }
52 }
53
54 @Override
55 protected EventLoopGroup newEventLoopGroup() {
56 return new DefaultEventLoopGroup();
57 }
58
59 @Override
60 protected Channel newChannel() {
61 return new LocalChannel();
62 }
63
64 @Override
65 protected Class<? extends ServerChannel> serverChannelClass() {
66 return LocalServerChannel.class;
67 }
68 }