11abddd9f6225298066094e20a6c29061b6af4590Nick Chalko/* 21abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Copyright (C) 2015 The Android Open Source Project 31abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * 41abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 51abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * you may not use this file except in compliance with the License. 61abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * You may obtain a copy of the License at 71abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * 81abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 91abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * 101abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Unless required by applicable law or agreed to in writing, software 111abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 121abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * See the License for the specific language governing permissions and 141abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * limitations under the License 151abddd9f6225298066094e20a6c29061b6af4590Nick Chalko */ 161abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 171abddd9f6225298066094e20a6c29061b6af4590Nick Chalkopackage com.android.tv.dvr; 181abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 191abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport android.test.suitebuilder.annotation.SmallTest; 201abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 211abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport com.android.tv.testing.dvr.RecordingTestUtils; 221abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 231abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport junit.framework.TestCase; 241abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 251abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport java.util.ArrayList; 261abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport java.util.List; 271abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 281abddd9f6225298066094e20a6c29061b6af4590Nick Chalko/** 2948dadb49248271b01997862e1335912a4f2e189fYoungsang Cho * Tests for {@link DvrDataManagerImpl} 301abddd9f6225298066094e20a6c29061b6af4590Nick Chalko */ 311abddd9f6225298066094e20a6c29061b6af4590Nick Chalko@SmallTest 321abddd9f6225298066094e20a6c29061b6af4590Nick Chalkopublic class DvrDataManagerImplTest extends TestCase { 3348dadb49248271b01997862e1335912a4f2e189fYoungsang Cho private static final int CHANNEL_ID = 273; 3448dadb49248271b01997862e1335912a4f2e189fYoungsang Cho 351abddd9f6225298066094e20a6c29061b6af4590Nick Chalko public void testGetNextScheduledStartTimeAfter() throws Exception { 361abddd9f6225298066094e20a6c29061b6af4590Nick Chalko long id = 1; 3748dadb49248271b01997862e1335912a4f2e189fYoungsang Cho List<ScheduledRecording> scheduledRecordings = new ArrayList<>(); 3848dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 0L, DvrDataManager.NEXT_START_TIME_NOT_FOUND); 3948dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 4048dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 10L, 20L)); 4148dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 9L, 10L); 4248dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 10L, DvrDataManager.NEXT_START_TIME_NOT_FOUND); 4348dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 4448dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 20L, 30L)); 4548dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 9L, 10L); 4648dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 10L, 20L); 4748dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 20L, DvrDataManager.NEXT_START_TIME_NOT_FOUND); 4848dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 4948dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 30L, 40L)); 5048dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 9L, 10L); 5148dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 10L, 20L); 5248dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 20L, 30L); 5348dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 30L, DvrDataManager.NEXT_START_TIME_NOT_FOUND); 5448dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.clear(); 5548dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 5648dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 10L, 20L)); 5748dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 5848dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 10L, 20L)); 5948dadb49248271b01997862e1335912a4f2e189fYoungsang Cho scheduledRecordings.add(RecordingTestUtils 6048dadb49248271b01997862e1335912a4f2e189fYoungsang Cho .createTestRecordingWithIdAndPeriod(id++, CHANNEL_ID, 10L, 20L)); 6148dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 9L, 10L); 6248dadb49248271b01997862e1335912a4f2e189fYoungsang Cho assertNextStartTime(scheduledRecordings, 10L, DvrDataManager.NEXT_START_TIME_NOT_FOUND); 631abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 641abddd9f6225298066094e20a6c29061b6af4590Nick Chalko 6548dadb49248271b01997862e1335912a4f2e189fYoungsang Cho private void assertNextStartTime(List<ScheduledRecording> scheduledRecordings, long startTime, long expected) { 661abddd9f6225298066094e20a6c29061b6af4590Nick Chalko assertEquals("getNextScheduledStartTimeAfter()", expected, 6748dadb49248271b01997862e1335912a4f2e189fYoungsang Cho DvrDataManagerImpl.getNextStartTimeAfter(scheduledRecordings, startTime)); 681abddd9f6225298066094e20a6c29061b6af4590Nick Chalko } 691abddd9f6225298066094e20a6c29061b6af4590Nick Chalko}