/* * Copyright (C) 2017 Team Gateship-One * (Hendrik Borghorst & Frederik Luetkes) * * The AUTHORS.md file contains a detailed contributors list: * <https://github.com/gateship-one/odyssey/blob/master/AUTHORS.md> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package org.gateshipone.odyssey; import android.os.Parcel; import android.support.test.runner.AndroidJUnit4; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import org.gateshipone.odyssey.models.TrackModel; @RunWith(AndroidJUnit4.class) public class TrackModelTest { private final String TEST_TRACKNAME = "Trackname"; private final String TEST_TRACKARTISTNAME = "Trackartistname"; private final String TEST_TRACKALBUMNAME = "Trackalbumname"; private final String TEST_TRACKALBUMKEY = "Trackalbumkey"; private final String TEST_TRACKURL = "Trackurl"; private final long TEST_TRACKDURATION = 12345678L; private final int TEST_TRACKNUMBER = 12; private final long TEST_TRACKID = 42L; private TrackModel mTrackModel; @Before public void setUp() { mTrackModel = new TrackModel(TEST_TRACKNAME, TEST_TRACKARTISTNAME, TEST_TRACKALBUMNAME, TEST_TRACKALBUMKEY, TEST_TRACKDURATION, TEST_TRACKNUMBER, TEST_TRACKURL, TEST_TRACKID); } @Test public void testCreate() { // Verify that the object is correct. assertThat(mTrackModel.getTrackName(), is(TEST_TRACKNAME)); assertThat(mTrackModel.getSectionTitle(), is(TEST_TRACKNAME)); assertThat(mTrackModel.getTrackArtistName(), is(TEST_TRACKARTISTNAME)); assertThat(mTrackModel.getTrackAlbumName(), is(TEST_TRACKALBUMNAME)); assertThat(mTrackModel.getTrackAlbumKey(), is(TEST_TRACKALBUMKEY)); assertThat(mTrackModel.getTrackDuration(), is(TEST_TRACKDURATION)); assertThat(mTrackModel.getTrackNumber(), is(TEST_TRACKNUMBER)); assertThat(mTrackModel.getTrackURL(), is(TEST_TRACKURL)); assertThat(mTrackModel.getTrackId(), is(TEST_TRACKID)); } @Test public void testParcelableWriteRead() { // Set up the Parcelable object to send and receive. // Write the data. Parcel parcel = Parcel.obtain(); mTrackModel.writeToParcel(parcel, mTrackModel.describeContents()); // After you're done with writing, you need to reset the parcel for reading. parcel.setDataPosition(0); // Read the data. TrackModel createdFromParcel = TrackModel.CREATOR.createFromParcel(parcel); // Verify that the received data is correct. assertThat(createdFromParcel.getTrackName(), is(TEST_TRACKNAME)); assertThat(createdFromParcel.getSectionTitle(), is(TEST_TRACKNAME)); assertThat(createdFromParcel.getTrackArtistName(), is(TEST_TRACKARTISTNAME)); assertThat(createdFromParcel.getTrackAlbumName(), is(TEST_TRACKALBUMNAME)); assertThat(createdFromParcel.getTrackAlbumKey(), is(TEST_TRACKALBUMKEY)); assertThat(createdFromParcel.getTrackDuration(), is(TEST_TRACKDURATION)); assertThat(createdFromParcel.getTrackNumber(), is(TEST_TRACKNUMBER)); assertThat(createdFromParcel.getTrackURL(), is(TEST_TRACKURL)); assertThat(createdFromParcel.getTrackId(), is(TEST_TRACKID)); } }