LengthValueBytesSerialiserUtil { public static <T> T deserialise(final ToBytesSerialiser<T> serialiser, final byte[] allBytes) throws SerialisationException { return deserialise(serialiser, allBytes, 0); }  static ByteArrayOutputStream createByteArray(); static ByteArrayOutputStream appendLengthValueFromObjectToByteStream(final ByteArrayOutputStream byteOut, final ToBytesSerialiser serialiser, final Object object); static ByteArrayOutputStream appendLengthValueFromBytesToByteStream(final ByteArrayOutputStream byteOut, final byte[] serialisedObject); static byte[] serialise(final ToBytesSerialiser<T> serialiser, final T value); static void serialise(final ToBytesSerialiser<T> serialiser, final T value, final ByteArrayOutputStream out); static byte[] serialise(final byte[] valueBytes); static void serialise(final byte[] valueBytes, final ByteArrayOutputStream out); static T deserialise(final ToBytesSerialiser<T> serialiser, final byte[] allBytes); static T deserialise(final ToBytesSerialiser<T> serialiser, final byte[] allBytes, final int delimiter); static T deserialise(final ToBytesSerialiser<T> serialiser, final byte[] allBytes, final int[] delimiterWrapper); static byte[] deserialise(final byte[] allBytes, final int[] delimiterWrapper); static byte[] deserialise(final byte[] allBytes); static byte[] deserialise(final byte[] allBytes, final int delimiter); static byte[] deserialise(final byte[] allBytes, final int lengthSize, final int valueSize, final int delimiter); static int getLengthSize(final byte[] allBytes, final int delimiter); static int getValueSize(final byte[] allBytes, final int delimiter); static int getValueSize(final byte[] allBytes, final int lengthSize, final int delimiter); static int getNextDelimiter(final byte[] allBytes, final int delimiter); static int getNextDelimiter(final byte[] allBytes, final byte[] valueBytes, final int lastDelimiter); static int getNextDelimiter(final byte[] allBytes, final int valueSize, final int lastDelimiter); static int getNextDelimiter(final int lengthSize, final int valueSize, final int lastDelimiter); static byte[] getValueBytes(final ToBytesSerialiser<T> serialiser, final T value); static ObjectCarriage<T> deserialiseNextObject(final ToBytesSerialiser<T> serialiser, final int currentCarriage, final byte[] bytes);  }
@Test public void shouldDeserialiseEmptyValue() throws IOException { final byte[] bytes = new byte[0]; final byte[] deserialisedBytes = LengthValueBytesSerialiserUtil.deserialise(bytes); assertArrayEquals(bytes, deserialisedBytes); }
@Test public void shouldDeserialiseNullValue() throws IOException { final byte[] bytes = null; final byte[] deserialisedBytes = LengthValueBytesSerialiserUtil.deserialise(bytes); assertArrayEquals(new byte[0], deserialisedBytes); }