• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.tv.data;
17 
18 import static android.media.tv.TvContract.Programs.Genres.COMEDY;
19 import static android.media.tv.TvContract.Programs.Genres.FAMILY_KIDS;
20 
21 import android.test.suitebuilder.annotation.SmallTest;
22 
23 import junit.framework.TestCase;
24 
25 import java.util.Arrays;
26 
27 /**
28  * Tests for {@link Program}.
29  */
30 @SmallTest
31 public class ProgramTest extends TestCase {
32 
33     private static final int NOT_FOUND_GENRE = 987;
34 
35     private static final int FAMILY_GENRE_ID = GenreItems.getId(FAMILY_KIDS);
36 
37     private static final int COMEDY_GENRE_ID = GenreItems.getId(COMEDY);
38 
testBuild()39     public void testBuild() {
40         Program program = new Program.Builder().build();
41         assertEquals("isValid", false, program.isValid());
42     }
43 
testNoGenres()44     public void testNoGenres() {
45         Program program = new Program.Builder()
46                 .setCanonicalGenres("")
47                 .build();
48         assertNullCanonicalGenres(program);
49         assertHasGenre(program, NOT_FOUND_GENRE, false);
50         assertHasGenre(program, FAMILY_GENRE_ID, false);
51         assertHasGenre(program, COMEDY_GENRE_ID, false);
52         assertHasGenre(program, GenreItems.ID_ALL_CHANNELS, true);
53     }
54 
testFamilyGenre()55     public void testFamilyGenre() {
56         Program program = new Program.Builder()
57                 .setCanonicalGenres(FAMILY_KIDS)
58                 .build();
59         assertCanonicalGenres(program, FAMILY_KIDS);
60         assertHasGenre(program, NOT_FOUND_GENRE, false);
61         assertHasGenre(program, FAMILY_GENRE_ID, true);
62         assertHasGenre(program, COMEDY_GENRE_ID, false);
63         assertHasGenre(program, GenreItems.ID_ALL_CHANNELS, true);
64     }
65 
testFamilyComedyGenre()66     public void testFamilyComedyGenre() {
67         Program program = new Program.Builder()
68                 .setCanonicalGenres(FAMILY_KIDS + ", " + COMEDY)
69                 .build();
70         assertCanonicalGenres(program, FAMILY_KIDS, COMEDY);
71         assertHasGenre(program, NOT_FOUND_GENRE, false);
72         assertHasGenre(program, FAMILY_GENRE_ID, true);
73         assertHasGenre(program, COMEDY_GENRE_ID, true);
74         assertHasGenre(program, GenreItems.ID_ALL_CHANNELS, true);
75     }
76 
testOtherGenre()77     public void testOtherGenre() {
78         Program program = new Program.Builder()
79                 .setCanonicalGenres("other")
80                 .build();
81         assertCanonicalGenres(program);
82         assertHasGenre(program, NOT_FOUND_GENRE, false);
83         assertHasGenre(program, FAMILY_GENRE_ID, false);
84         assertHasGenre(program, COMEDY_GENRE_ID, false);
85         assertHasGenre(program, GenreItems.ID_ALL_CHANNELS, true);
86     }
87 
assertNullCanonicalGenres(Program program)88     private static void assertNullCanonicalGenres(Program program) {
89         String[] actual = program.getCanonicalGenres();
90         assertNull("Expected null canonical genres but was " + Arrays.toString(actual), actual);
91     }
92 
assertCanonicalGenres(Program program, String... expected)93     private static void assertCanonicalGenres(Program program, String... expected) {
94         assertEquals("canonical genres", Arrays.asList(expected),
95                 Arrays.asList(program.getCanonicalGenres()));
96     }
97 
assertHasGenre(Program program, int genreId, boolean expected)98     private static void assertHasGenre(Program program, int genreId, boolean expected) {
99         assertEquals("hasGenre(" + genreId + ")", expected, program.hasGenre(genreId));
100     }
101 }
102