package net.rdrei.android.scdl2.test; import android.os.Parcel; import net.rdrei.android.scdl2.api.entity.PlaylistEntity; import net.rdrei.android.scdl2.api.entity.TrackEntity; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import java.util.Arrays; import static org.hamcrest.CoreMatchers.equalTo; import static org.junit.Assert.assertThat; @RunWith(RobolectricTestRunner.class) public class PlaylistEntityTest { @Test public void testDescription() { final PlaylistEntity entity = new PlaylistEntity(); entity.setDescription("This is my description"); assertThat(entity.getDescription(), equalTo("This is my description")); } @Test public void testParcel() { final TrackEntity track0 = new TrackEntity(); track0.setId(200l); track0.setTitle("Hello, World."); final TrackEntity track1 = new TrackEntity(); track1.setId(201l); track1.setTitle("Yet another track"); final PlaylistEntity playlist = new PlaylistEntity(); playlist.setId(23l); playlist.setDescription("new stuff"); playlist.setTracks(Arrays.asList(new TrackEntity[] { track0, track1 })); final byte[] bytes; final Parcel parcel0 = Parcel.obtain(); try { parcel0.writeValue(playlist); bytes = parcel0.marshall(); } finally { parcel0.recycle(); } final PlaylistEntity newPlaylist; final Parcel parcel1 = Parcel.obtain(); try { parcel1.unmarshall(bytes, 0, bytes.length); parcel1.setDataPosition(0); newPlaylist = (PlaylistEntity) parcel1.readValue(PlaylistEntity.class.getClassLoader()); } finally { parcel1.recycle(); } assertThat(newPlaylist.getId(), equalTo(23l)); assertThat(newPlaylist.getDescription(), equalTo("new stuff")); assertThat(newPlaylist.getTracks().size(), equalTo(2)); assertThat(newPlaylist.getTracks().get(0).getId(), equalTo(200l)); } }