aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/src/com/android/tv/data/ProgramTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/src/com/android/tv/data/ProgramTest.java')
-rw-r--r--tests/unit/src/com/android/tv/data/ProgramTest.java76
1 files changed, 75 insertions, 1 deletions
diff --git a/tests/unit/src/com/android/tv/data/ProgramTest.java b/tests/unit/src/com/android/tv/data/ProgramTest.java
index 25856e18..7e474cd6 100644
--- a/tests/unit/src/com/android/tv/data/ProgramTest.java
+++ b/tests/unit/src/com/android/tv/data/ProgramTest.java
@@ -18,11 +18,20 @@ package com.android.tv.data;
import static android.media.tv.TvContract.Programs.Genres.COMEDY;
import static android.media.tv.TvContract.Programs.Genres.FAMILY_KIDS;
-import android.test.suitebuilder.annotation.SmallTest;
+import com.android.tv.data.Program.CriticScore;
+import com.android.tv.dvr.SeriesRecording;
+
+import android.media.tv.TvContentRating;
+import android.media.tv.TvContract.Programs.Genres;
+import android.os.Parcel;
+import android.support.test.filters.SmallTest;
+import android.util.Log;
import junit.framework.TestCase;
+import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
/**
* Tests for {@link Program}.
@@ -85,6 +94,71 @@ public class ProgramTest extends TestCase {
assertHasGenre(program, GenreItems.ID_ALL_CHANNELS, true);
}
+ public void testParcelable() throws Exception {
+ List<CriticScore> criticScores = new ArrayList<>();
+ criticScores.add(new CriticScore("1", "2", "3"));
+ criticScores.add(new CriticScore("4", "5", "6"));
+ TvContentRating[] ratings = new TvContentRating[2];
+ ratings[0] = TvContentRating.unflattenFromString("1/2/3");
+ ratings[1] = TvContentRating.unflattenFromString("4/5/6");
+ Program p = new Program.Builder()
+ .setId(1)
+ .setPackageName("2")
+ .setChannelId(3)
+ .setTitle("4")
+ .setSeriesId("5")
+ .setEpisodeTitle("6")
+ .setSeasonNumber("7")
+ .setSeasonTitle("8")
+ .setEpisodeNumber("9")
+ .setStartTimeUtcMillis(10)
+ .setEndTimeUtcMillis(11)
+ .setDescription("12")
+ .setLongDescription("12-long")
+ .setVideoWidth(13)
+ .setVideoHeight(14)
+ .setCriticScores(criticScores)
+ .setPosterArtUri("15")
+ .setThumbnailUri("16")
+ .setCanonicalGenres(Genres.encode(Genres.SPORTS, Genres.SHOPPING))
+ .setContentRatings(ratings)
+ .setRecordingProhibited(true)
+ .build();
+ Parcel p1 = Parcel.obtain();
+ Parcel p2 = Parcel.obtain();
+ try {
+ p.writeToParcel(p1, 0);
+ byte[] bytes = p1.marshall();
+ p2.unmarshall(bytes, 0, bytes.length);
+ p2.setDataPosition(0);
+ Program r2 = Program.fromParcel(p2);
+ assertEquals(p, r2);
+ } finally {
+ p1.recycle();
+ p2.recycle();
+ }
+ }
+
+ public void testParcelableWithCriticScore() {
+ Program program = new Program.Builder()
+ .setTitle("MyTitle")
+ .addCriticScore(new CriticScore(
+ "default source",
+ "5/10",
+ "https://testurl/testimage.jpg"))
+ .build();
+ Parcel parcel = Parcel.obtain();
+ program.writeToParcel(parcel, 0);
+ parcel.setDataPosition(0);
+ Program programFromParcel = Program.CREATOR.createFromParcel(parcel);
+
+ assertNotNull(programFromParcel.getCriticScores());
+ assertEquals(programFromParcel.getCriticScores().get(0).source, "default source");
+ assertEquals(programFromParcel.getCriticScores().get(0).score, "5/10");
+ assertEquals(programFromParcel.getCriticScores().get(0).logoUrl,
+ "https://testurl/testimage.jpg");
+ }
+
private static void assertNullCanonicalGenres(Program program) {
String[] actual = program.getCanonicalGenres();
assertNull("Expected null canonical genres but was " + Arrays.toString(actual), actual);