@Override public void nullSafeToParcel(byte[] input, Parcel parcel) { parcel.writeByteArray(input); } };
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(owner); dest.writeByteArray(privateData); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(id); dest.writeByteArray(data); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeLong(ptsAdjustment); dest.writeLong(identifier); dest.writeInt(commandBytes.length); dest.writeByteArray(commandBytes); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mimeType); dest.writeString(filename); dest.writeString(description); dest.writeByteArray(data); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mimeType); dest.writeString(description); dest.writeInt(pictureType); dest.writeByteArray(pictureData); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(key); dest.writeInt(value.length); dest.writeByteArray(value); dest.writeInt(localeIndicator); dest.writeInt(typeIndicator); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeLong(uuid.getMostSignificantBits()); dest.writeLong(uuid.getLeastSignificantBits()); dest.writeString(licenseServerUrl); dest.writeString(mimeType); dest.writeByteArray(data); dest.writeByte((byte) (requiresSecureDecryption ? 1 : 0)); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(schemeIdUri); dest.writeString(value); dest.writeLong(presentationTimeUs); dest.writeLong(durationMs); dest.writeLong(id); dest.writeByteArray(messageData); }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(colorSpace); dest.writeInt(colorRange); dest.writeInt(colorTransfer); Util.writeBoolean(dest, hdrStaticInfo != null); if (hdrStaticInfo != null) { dest.writeByteArray(hdrStaticInfo); } }
@Test public void testByteArrayToleratesZeroes() { parcel.writeInt(19); // Length parcel.writeInt(0); // These are zero parcel.writeLong(0); // This is zero parcel.writeFloat(0.0f); // This is zero parcel.writeByteArray(new byte[0]); // This is also zero assertThat(parcel.dataSize()).isEqualTo(24); parcel.setDataPosition(0); assertThat(parcel.createByteArray()).isEqualTo(new byte[19]); }
@Test public void testByteArrayOfZeroesReadAsZeroes() { parcel.writeByteArray(new byte[15]); assertThat(parcel.dataSize()).isEqualTo(20); parcel.setDataPosition(0); assertThat(parcel.readInt()).isEqualTo(15); assertThat(parcel.readLong()).isEqualTo(0); assertThat(parcel.readLong()).isEqualTo(0); assertThat(parcel.dataPosition()).isEqualTo(20); }
@Test public void testByteArrayOfZeroesCastedToZeroes() { parcel.writeByteArray(new byte[17]); assertThat(parcel.dataSize()).named("total size").isEqualTo(24); parcel.setDataPosition(0); assertThat(parcel.readInt()).isEqualTo(17); assertThat(parcel.readInt()).isEqualTo(0); assertThat(parcel.readFloat()).isEqualTo(0.0f); assertThat(parcel.createByteArray()).isEqualTo(new byte[0]); assertThat(parcel.readString()).isEqualTo(""); }
@Test public void testWriteAndCreateNullByteArray() throws Exception { parcel.writeByteArray(null); assertThat(parcel.dataSize()).isEqualTo(4); parcel.setDataPosition(0); assertThat(parcel.createByteArray()).isNull(); }
@Test public void testWriteAndCreateByteArray_lengthZero() { byte[] bytes = new byte[] {}; parcel.writeByteArray(bytes); assertThat(parcel.dataSize()).isEqualTo(4); parcel.setDataPosition(0); byte[] actualBytes = parcel.createByteArray(); assertTrue(Arrays.equals(bytes, actualBytes)); }
@Test public void testWriteAndReadByteArray() { byte[] bytes = new byte[] { -1, 2, 3, 127 }; parcel.writeByteArray(bytes); assertThat(parcel.dataSize()).isEqualTo(8); parcel.setDataPosition(0); byte[] actualBytes = new byte[bytes.length]; parcel.readByteArray(actualBytes); assertTrue(Arrays.equals(bytes, actualBytes)); }
@Test(expected = RuntimeException.class) public void testWriteAndReadByteArray_nullNotAllowed() { parcel.writeByteArray(null); assertThat(parcel.dataSize()).isEqualTo(4); parcel.setDataPosition(0); byte[] actualBytes = new byte[1]; parcel.readByteArray(actualBytes); }
@Test(expected = RuntimeException.class) public void testWriteAndReadByteArray_badLength() { byte[] bytes = new byte[] { -1, 2, 3, 127 }; parcel.writeByteArray(bytes); assertThat(parcel.dataSize()).isEqualTo(8); parcel.setDataPosition(0); byte[] actualBytes = new byte[1]; parcel.readByteArray(actualBytes); }
@Test public void testWriteAndCreateByteArray_oddLength() { byte[] bytes = new byte[] {-1, 2, 3, 127, -128}; parcel.writeByteArray(bytes); assertWithMessage("4B length + 5B data + 3B padding").that(parcel.dataSize()).isEqualTo(12); parcel.setDataPosition(0); assertThat(parcel.createByteArray()).isEqualTo(bytes); }
@Test public void testWriteAndCreateByteArray_multipleOf4() { byte[] bytes = new byte[] {-1, 2, 3, 127}; parcel.writeByteArray(bytes); // Make sure that the parcel is not storing the original array. bytes[0] = 55; bytes[1] = 55; bytes[2] = 55; bytes[3] = 55; assertWithMessage("4B length + 4B data").that(parcel.dataSize()).isEqualTo(8); parcel.setDataPosition(0); byte[] actualBytes = parcel.createByteArray(); assertThat(actualBytes).isEqualTo(new byte[] {-1, 2, 3, 127}); }