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));
}
});
}
Defined In
Source
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