in proprot/tst/com/amazonaws/proprot/ProxyProtocolTest.java [48:98]
public void testRoundtrip_ipv6() throws IOException {
final Header header = createBaseHeader();
header.setAlpn(Optional.of(new byte[] {3, 4, 5}));
header.setAuthority(Optional.of("authority 1"));
header.setSslFlags(SslFlags.getOptional(true, true, true, true));
header.setSslVersion(Optional.of("ssl version 1"));
header.setSslCommonName(Optional.of("ssl common name 1"));
header.setSslCipher(Optional.of("ssl cipher 1"));
header.setSslSigAlg(Optional.of("sig algorithm 1"));
header.setSslKeyAlg(Optional.of("key algorithm 1"));
header.setNetNS(Optional.of("Net namespace 1"));
TlvRaw tlv = new TlvRaw();
tlv.setType(TLV_TYPE);
tlv.setValue(new byte[] {1, 2, 3, 4, 5, 6, 7, 8});
header.addTlv(tlv);
ProxyProtocol protocol = new ProxyProtocol();
// write
ByteArrayOutputStream out = new ByteArrayOutputStream();
protocol.write(header, out);
// read
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
Header header2 = protocol.read(in);
// validate
assertEquals(header.getCommand(), header2.getCommand());
assertEquals(header.getAddressFamily(), header2.getAddressFamily());
assertEquals(header.getTransportProtocol(), header2.getTransportProtocol());
assertArrayEquals(header.getSrcAddress(), header2.getSrcAddress());
assertArrayEquals(header.getDstAddress(), header2.getDstAddress());
assertEquals(header.getSrcPort(), header2.getSrcPort());
assertEquals(header.getDstPort(), header2.getDstPort());
assertArrayEquals(header.getAlpn().get(), header2.getAlpn().get());
assertEquals(header.getAuthority(), header2.getAuthority());
assertEquals(header.getSslFlags(), header2.getSslFlags());
assertEquals(header.getSslVersion(), header2.getSslVersion());
assertEquals(header.getSslCommonName(), header2.getSslCommonName());
assertEquals(header.getSslCipher(), header2.getSslCipher());
assertEquals(header.getSslSigAlg(), header2.getSslSigAlg());
assertEquals(header.getSslKeyAlg(), header2.getSslKeyAlg());
assertEquals(header.getNetNS(), header2.getNetNS());
TlvRaw tlv2 = (TlvRaw) Iterables.getOnlyElement(header2.getTlvs());
assertEquals(tlv.getType(), tlv2.getType());
assertArrayEquals(tlv.getValue(), tlv2.getValue());
}