Home / Class/ DatagramUnicastInetTest Class — netty Architecture

DatagramUnicastInetTest Class — netty Architecture

Architecture documentation for the DatagramUnicastInetTest class in DatagramUnicastInetTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f0d69a11_922d_d577_4c42_91055296d6a7["DatagramUnicastInetTest"]
  899e6d98_db34_8d37_aa65_8768679d9e82["DatagramUnicastInetTest.java"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|defined in| 899e6d98_db34_8d37_aa65_8768679d9e82
  fd4df5a9_756f_6cf6_ccea_fafb432923d0["testBindWithPortOnly()"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|method| fd4df5a9_756f_6cf6_ccea_fafb432923d0
  b534850b_7770_698e_a10f_468b77df86f9["isConnected()"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|method| b534850b_7770_698e_a10f_468b77df86f9
  3f54518d_238f_17f2_7d87_05c6651a1886["Channel()"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|method| 3f54518d_238f_17f2_7d87_05c6651a1886
  533ec669_da06_f17c_69e0_279899321149["supportDisconnect()"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|method| 533ec669_da06_f17c_69e0_279899321149
  6d3d073d_f9d6_63f4_4d85_f01dbbfc9142["ChannelFuture()"]
  f0d69a11_922d_d577_4c42_91055296d6a7 -->|method| 6d3d073d_f9d6_63f4_4d85_f01dbbfc9142

Relationship Graph

Source Code

testsuite/src/main/java/io/netty/testsuite/transport/socket/DatagramUnicastInetTest.java lines 39–170

public class DatagramUnicastInetTest extends DatagramUnicastTest {

    @Test
    public void testBindWithPortOnly(TestInfo testInfo) throws Throwable {
        run(testInfo, new Runner<Bootstrap, Bootstrap>() {
            @Override
            public void run(Bootstrap bootstrap, Bootstrap bootstrap2) throws Throwable {
                testBindWithPortOnly(bootstrap2);
            }
        });
    }

    private static void testBindWithPortOnly(Bootstrap cb) throws Throwable {
        Channel channel = null;
        try {
            cb.handler(new ChannelHandlerAdapter() { });
            channel = cb.bind(0).sync().channel();
        } finally {
            closeChannel(channel);
        }
    }

    @Override
    protected boolean isConnected(Channel channel) {
        return ((DatagramChannel) channel).isConnected();
    }

    @Override
    protected Channel setupClientChannel(Bootstrap cb, final byte[] bytes, final CountDownLatch latch,
                                         final AtomicReference<Throwable> errorRef) throws Throwable {
        cb.handler(new SimpleChannelInboundHandler<DatagramPacket>() {

            @Override
            public void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) {
                try {
                    ByteBuf buf = msg.content();
                    assertEquals(bytes.length, buf.readableBytes());
                    for (int i = 0; i < bytes.length; i++) {
                        assertEquals(bytes[i], buf.getByte(buf.readerIndex() + i));
                    }

                    InetSocketAddress localAddress = (InetSocketAddress) ctx.channel().localAddress();
                    if (localAddress.getAddress().isAnyLocalAddress()) {
                        assertEquals(localAddress.getPort(), msg.recipient().getPort());
                    } else {
                        // Test that the channel's localAddress is equal to the message's recipient
                        assertEquals(localAddress, msg.recipient());
                    }
                } finally {
                    latch.countDown();
                }
            }

            @Override
            public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
                errorRef.compareAndSet(null, cause);
            }
        });
        return cb.bind(newSocketAddress()).sync().channel();
    }

    @Override
    protected Channel setupServerChannel(Bootstrap sb, final byte[] bytes, final SocketAddress sender,
                                         final CountDownLatch latch, final AtomicReference<Throwable> errorRef,
                                         final boolean echo) throws Throwable {
        sb.handler(new ChannelInitializer<Channel>() {
            @Override
            protected void initChannel(Channel ch) {
                ch.pipeline().addLast(new SimpleChannelInboundHandler<DatagramPacket>() {

                    @Override
                    public void channelRead0(ChannelHandlerContext ctx, DatagramPacket msg) {
                        try {
                            if (sender == null) {
                                assertNotNull(msg.sender());
                            } else {
                                InetSocketAddress senderAddress = (InetSocketAddress) sender;
                                if (senderAddress.getAddress().isAnyLocalAddress()) {
                                    assertEquals(senderAddress.getPort(), msg.sender().getPort());
                                } else {
                                    assertEquals(sender, msg.sender());

Frequently Asked Questions

What is the DatagramUnicastInetTest class?
DatagramUnicastInetTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/DatagramUnicastInetTest.java.
Where is DatagramUnicastInetTest defined?
DatagramUnicastInetTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/DatagramUnicastInetTest.java at line 39.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free