Home / Class/ HAProxyMessageDecoderTest Class — netty Architecture

HAProxyMessageDecoderTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  88909aff_3546_2e28_19d9_812a1929ee17["HAProxyMessageDecoderTest"]
  98108e2c_0236_5d26_4958_11d185042722["HAProxyMessageDecoderTest.java"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|defined in| 98108e2c_0236_5d26_4958_11d185042722
  ccde64d1_4ae1_e191_7206_d8582d460f28["setUp()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| ccde64d1_4ae1_e191_7206_d8582d460f28
  79dbf7d7_f5e9_1b1d_97d2_eec7073d8bf6["testIPV4Decode()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 79dbf7d7_f5e9_1b1d_97d2_eec7073d8bf6
  44f7d1ae_29ec_d970_5806_f6a5a22ba57c["testIPV6Decode()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 44f7d1ae_29ec_d970_5806_f6a5a22ba57c
  e80070ef_08c1_2010_bdf6_c9def6e837b6["testUnknownProtocolDecode()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| e80070ef_08c1_2010_bdf6_c9def6e837b6
  be135876_b6d8_502c_4d72_3e9f06e0eddc["testV1NoUDP()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| be135876_b6d8_502c_4d72_3e9f06e0eddc
  99e1a09e_ee8e_eac3_4b5f_68c7e0eda2eb["testInvalidPort()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 99e1a09e_ee8e_eac3_4b5f_68c7e0eda2eb
  1315adac_b316_97fd_2056_f377c5befc04["testInvalidIPV4Address()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 1315adac_b316_97fd_2056_f377c5befc04
  c8a9f943_ef27_b139_c72b_393708ac3be2["testInvalidIPV6Address()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| c8a9f943_ef27_b139_c72b_393708ac3be2
  f1c9b34d_8a9e_d127_37e5_4c32ac55d58a["testInvalidProtocol()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| f1c9b34d_8a9e_d127_37e5_4c32ac55d58a
  5fac581f_9245_465e_55db_2f2aac28b370["testMissingParams()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 5fac581f_9245_465e_55db_2f2aac28b370
  b2905b4d_e15c_f1e1_2c8e_90df40f45488["testTooManyParams()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| b2905b4d_e15c_f1e1_2c8e_90df40f45488
  2ffdb5f4_5d36_176f_32db_0eb22b41809e["testInvalidCommand()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| 2ffdb5f4_5d36_176f_32db_0eb22b41809e
  ff1a99a7_d95d_209e_70c7_4b72ecf5b0be["testInvalidEOL()"]
  88909aff_3546_2e28_19d9_812a1929ee17 -->|method| ff1a99a7_d95d_209e_70c7_4b72ecf5b0be

Relationship Graph

Source Code

codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HAProxyMessageDecoderTest.java lines 46–1259

public class HAProxyMessageDecoderTest {
    private EmbeddedChannel ch;

    @BeforeEach
    public void setUp() {
        ch = new EmbeddedChannel(new HAProxyMessageDecoder());
    }

    @Test
    public void testIPV4Decode() {
        int startChannels = ch.pipeline().names().size();
        String header = "PROXY TCP4 192.168.0.1 192.168.0.11 56324 443\r\n";
        ch.writeInbound(copiedBuffer(header, CharsetUtil.US_ASCII));
        Object msgObj = ch.readInbound();
        assertEquals(startChannels - 1, ch.pipeline().names().size());
        assertThat(msgObj).isInstanceOf(HAProxyMessage.class);
        HAProxyMessage msg = (HAProxyMessage) msgObj;
        assertEquals(HAProxyProtocolVersion.V1, msg.protocolVersion());
        assertEquals(HAProxyCommand.PROXY, msg.command());
        assertEquals(HAProxyProxiedProtocol.TCP4, msg.proxiedProtocol());
        assertEquals("192.168.0.1", msg.sourceAddress());
        assertEquals("192.168.0.11", msg.destinationAddress());
        assertEquals(56324, msg.sourcePort());
        assertEquals(443, msg.destinationPort());
        assertNull(ch.readInbound());
        assertFalse(ch.finish());
        assertTrue(msg.release());
    }

    @Test
    public void testIPV6Decode() {
        int startChannels = ch.pipeline().names().size();
        String header = "PROXY TCP6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 1050:0:0:0:5:600:300c:326b 56324 443\r\n";
        ch.writeInbound(copiedBuffer(header, CharsetUtil.US_ASCII));
        Object msgObj = ch.readInbound();
        assertEquals(startChannels - 1, ch.pipeline().names().size());
        assertThat(msgObj).isInstanceOf(HAProxyMessage.class);
        HAProxyMessage msg = (HAProxyMessage) msgObj;
        assertEquals(HAProxyProtocolVersion.V1, msg.protocolVersion());
        assertEquals(HAProxyCommand.PROXY, msg.command());
        assertEquals(HAProxyProxiedProtocol.TCP6, msg.proxiedProtocol());
        assertEquals("2001:0db8:85a3:0000:0000:8a2e:0370:7334", msg.sourceAddress());
        assertEquals("1050:0:0:0:5:600:300c:326b", msg.destinationAddress());
        assertEquals(56324, msg.sourcePort());
        assertEquals(443, msg.destinationPort());
        assertNull(ch.readInbound());
        assertFalse(ch.finish());
        assertTrue(msg.release());
    }

    @Test
    public void testUnknownProtocolDecode() {
        int startChannels = ch.pipeline().names().size();
        String header = "PROXY UNKNOWN 192.168.0.1 192.168.0.11 56324 443\r\n";
        ch.writeInbound(copiedBuffer(header, CharsetUtil.US_ASCII));
        Object msgObj = ch.readInbound();
        assertEquals(startChannels - 1, ch.pipeline().names().size());
        assertThat(msgObj).isInstanceOf(HAProxyMessage.class);
        HAProxyMessage msg = (HAProxyMessage) msgObj;
        assertEquals(HAProxyProtocolVersion.V1, msg.protocolVersion());
        assertEquals(HAProxyCommand.PROXY, msg.command());
        assertEquals(HAProxyProxiedProtocol.UNKNOWN, msg.proxiedProtocol());
        assertNull(msg.sourceAddress());
        assertNull(msg.destinationAddress());
        assertEquals(0, msg.sourcePort());
        assertEquals(0, msg.destinationPort());
        assertNull(ch.readInbound());
        assertFalse(ch.finish());
        assertTrue(msg.release());
    }

    @Test
    public void testV1NoUDP() {
        final String header = "PROXY UDP4 192.168.0.1 192.168.0.11 56324 443\r\n";
        assertThrows(HAProxyProtocolException.class, new Executable() {
            @Override
            public void execute() {
                ch.writeInbound(copiedBuffer(header, CharsetUtil.US_ASCII));
            }
        });
    }

Frequently Asked Questions

What is the HAProxyMessageDecoderTest class?
HAProxyMessageDecoderTest is a class in the netty codebase, defined in codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HAProxyMessageDecoderTest.java.
Where is HAProxyMessageDecoderTest defined?
HAProxyMessageDecoderTest is defined in codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HAProxyMessageDecoderTest.java at line 46.

Analyze Your Own Codebase

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

Try Supermodel Free