@Override
    public String toString() {
        return toStringHelper(getClass())
                .add("version", Byte.toString(version))
                .add("trafficClass", Byte.toString(trafficClass))
                .add("flowLabel", Integer.toString(flowLabel))
                .add("payloadLength", Short.toString(payloadLength))
                .add("nextHeader", Byte.toString(nextHeader))
                .add("hopLimit", Byte.toString(hopLimit))
                .add("sourceAddress", Arrays.toString(sourceAddress))
                .add("destinationAddress", Arrays.toString(destinationAddress))
                .toString();
    }
@Test
    public void testToStringIPv6() throws Exception {
        IPv6 ipv6 = deserializer.deserialize(bytePacket, 0, bytePacket.length);
        String str = ipv6.toString();

        assertTrue(StringUtils.contains(str, "version=" + (byte) 6));
        assertTrue(StringUtils.contains(str, "trafficClass=" + (byte) 0x93));
        assertTrue(StringUtils.contains(str, "flowLabel=" + 0x13579));
        assertTrue(StringUtils.contains(str, "nextHeader=" + PROTOCOL_UDP));
        assertTrue(StringUtils.contains(str, "hopLimit=" + (byte) 32));
        // TODO: test IPv6 source and destination address
    }