1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.testsuite.transport.socket;
17
18 import io.netty.bootstrap.Bootstrap;
19 import io.netty.buffer.Unpooled;
20 import io.netty.channel.ChannelHandlerContext;
21 import io.netty.channel.ChannelInboundHandlerAdapter;
22 import io.netty.channel.socket.SocketChannel;
23 import org.junit.jupiter.api.Test;
24 import org.junit.jupiter.api.TestInfo;
25 import org.junit.jupiter.api.Timeout;
26
27 import java.util.concurrent.TimeUnit;
28
29 public class WriteBeforeRegisteredTest extends AbstractClientSocketTest {
30
31 @Test
32 @Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
33 public void testWriteBeforeConnect(TestInfo testInfo) throws Throwable {
34 run(testInfo, new Runner<Bootstrap>() {
35 @Override
36 public void run(Bootstrap bootstrap) throws Throwable {
37 testWriteBeforeConnect(bootstrap);
38 }
39 });
40 }
41
42 public void testWriteBeforeConnect(Bootstrap cb) throws Throwable {
43 TestHandler h = new TestHandler();
44 SocketChannel ch = null;
45 try {
46 ch = (SocketChannel) cb.handler(h).connect(newSocketAddress()).channel();
47 ch.writeAndFlush(Unpooled.wrappedBuffer(new byte[] { 1 }));
48 } finally {
49 if (ch != null) {
50 ch.close();
51 }
52 }
53 }
54
55 private static class TestHandler extends ChannelInboundHandlerAdapter {
56 @Override
57 public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
58 cause.printStackTrace();
59 }
60 }
61 }