MdtaMetadataEntry implements Metadata.Entry { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(key); dest.writeInt(value.length); dest.writeByteArray(value); dest.writeInt(localeIndicator); dest.writeInt(typeIndicator); } MdtaMetadataEntry(String key, byte[] value, int localeIndicator, int typeIndicator); private  MdtaMetadataEntry(Parcel in); @Override boolean equals(@Nullable Object obj); @Override int hashCode(); @Override String toString(); @Override void writeToParcel(Parcel dest, int flags); @Override int describeContents(); final String key; final byte[] value; final int localeIndicator; final int typeIndicator; static final Parcelable.Creator<MdtaMetadataEntry> CREATOR; }
@Test public void testParcelable() { MdtaMetadataEntry mdtaMetadataEntryToParcel = new MdtaMetadataEntry("test", new byte[] {1, 2}, 3, 4); Parcel parcel = Parcel.obtain(); mdtaMetadataEntryToParcel.writeToParcel(parcel, 0); parcel.setDataPosition(0); MdtaMetadataEntry mdtaMetadataEntryFromParcel = MdtaMetadataEntry.CREATOR.createFromParcel(parcel); assertThat(mdtaMetadataEntryFromParcel).isEqualTo(mdtaMetadataEntryToParcel); parcel.recycle(); }