/** Test correct header serialization */
  @Test
  public void testSerializeHeader() {
    MatchEntryBuilder builder = prepareHeader(false);

    ByteBuf buffer = PooledByteBufAllocator.DEFAULT.buffer();
    serializer.serializeHeader(builder.build(), buffer);

    checkHeader(buffer, false);
    assertTrue("Unexpected data", buffer.readableBytes() == 0);
  }
  /** Test correct serialization */
  @Test
  public void testSerialize() {
    MatchEntryBuilder builder = prepareMatchEntry(4096);

    ByteBuf buffer = PooledByteBufAllocator.DEFAULT.buffer();
    serializer.serialize(builder.build(), buffer);

    checkHeader(buffer, false);
    assertEquals("Wrong value", 4096, buffer.readUnsignedShort());
    assertTrue("Unexpected data", buffer.readableBytes() == 0);
  }
 @Override
 public MatchEntry deserialize(ByteBuf input) {
   MatchEntryBuilder builder = processHeader(getOxmClass(), getOxmField(), input);
   addIcmpv6TypeValue(input, builder);
   return builder.build();
 }