aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java')
-rw-r--r--tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java b/tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java
new file mode 100644
index 00000000..1aee6d33
--- /dev/null
+++ b/tests/unit/src/com/android/tv/dvr/ScheduledRecordingTest.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.tv.dvr;
+
+import static com.android.tv.testing.dvr.RecordingTestUtils.createTestRecordingWithIdAndPeriod;
+import static com.android.tv.testing.dvr.RecordingTestUtils.normalizePriority;
+
+import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Range;
+
+import com.android.tv.data.Channel;
+import com.android.tv.data.Program;
+import com.android.tv.testing.dvr.RecordingTestUtils;
+
+import junit.framework.TestCase;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Tests for {@link ScheduledRecordingTest}
+ */
+@SmallTest
+public class ScheduledRecordingTest extends TestCase {
+ private static final int CHANNEL_ID = 273;
+
+ public void testIsOverLapping() throws Exception {
+ ScheduledRecording r = createTestRecordingWithIdAndPeriod(1, CHANNEL_ID, 10L, 20L);
+ assertOverLapping(false, 1L, 9L, r);
+
+ assertOverLapping(true, 1L, 20L, r);
+ assertOverLapping(true, 1L, 10L, r);
+ assertOverLapping(true, 10L, 19L, r);
+ assertOverLapping(true, 10L, 20L, r);
+ assertOverLapping(true, 11L, 20L, r);
+ assertOverLapping(true, 11L, 21L, r);
+ assertOverLapping(true, 20L, 21L, r);
+
+ assertOverLapping(false, 21L, 29L, r);
+ }
+
+ public void testBuildProgram() {
+ Channel c = new Channel.Builder().build();
+ Program p = new Program.Builder().build();
+ ScheduledRecording actual = ScheduledRecording.builder(p).setChannelId(c.getId()).build();
+ assertEquals("type", ScheduledRecording.TYPE_PROGRAM, actual.getType());
+ }
+
+ public void testBuildTime() {
+ ScheduledRecording actual = createTestRecordingWithIdAndPeriod(1, CHANNEL_ID, 10L, 20L);
+ assertEquals("type", ScheduledRecording.TYPE_TIMED, actual.getType());
+ }
+
+ public void testBuildFrom() {
+ ScheduledRecording expected = createTestRecordingWithIdAndPeriod(1, CHANNEL_ID, 10L, 20L);
+ ScheduledRecording actual = ScheduledRecording.buildFrom(expected).build();
+ RecordingTestUtils.assertRecordingEquals(expected, actual);
+ }
+
+ public void testBuild_priority() {
+ ScheduledRecording a = normalizePriority(
+ createTestRecordingWithIdAndPeriod(1, CHANNEL_ID, 10L, 20L));
+ ScheduledRecording b = normalizePriority(
+ createTestRecordingWithIdAndPeriod(2, CHANNEL_ID, 10L, 20L));
+ ScheduledRecording c = normalizePriority(
+ createTestRecordingWithIdAndPeriod(3, CHANNEL_ID, 10L, 20L));
+
+ // default priority
+ MoreAsserts.assertContentsInOrder(sortByPriority(c,b,a), a, b, c);
+
+ // make C preferred over B
+ c = ScheduledRecording.buildFrom(c).setPriority(b.getPriority() - 1).build();
+ MoreAsserts.assertContentsInOrder(sortByPriority(c,b,a), a, c, b);
+ }
+
+ public Collection<ScheduledRecording> sortByPriority(ScheduledRecording a, ScheduledRecording b, ScheduledRecording c) {
+ List<ScheduledRecording> list = Arrays.asList(a, b, c);
+ Collections.sort(list, ScheduledRecording.PRIORITY_COMPARATOR);
+ return list;
+ }
+
+ private void assertOverLapping(boolean expected, long lower, long upper, ScheduledRecording r) {
+ assertEquals("isOverlapping(Range(" + lower + "," + upper + "), recording " + r, expected,
+ r.isOverLapping(new Range<Long>(lower, upper)));
+ }
+}