public void testRoundtrip_ipv6()

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());
    }