/* * Copyright (C) 2016 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 android.support.annotation.NonNull; import android.support.test.filters.SmallTest; import android.test.AndroidTestCase; import android.test.MoreAsserts; import com.android.tv.testing.FakeClock; import com.android.tv.testing.dvr.RecordingTestUtils; import java.util.List; import java.util.concurrent.TimeUnit; /** * Tests for {@link BaseDvrDataManager} using {@link DvrDataManagerInMemoryImpl}. */ @SmallTest public class BaseDvrDataManagerTest extends AndroidTestCase { private static final String INPUT_ID = "input_id"; private static final int CHANNEL_ID = 273; private DvrDataManagerInMemoryImpl mDvrDataManager; private FakeClock mFakeClock; @Override protected void setUp() throws Exception { super.setUp(); mFakeClock = FakeClock.createWithCurrentTime(); mDvrDataManager = new DvrDataManagerInMemoryImpl(getContext(), mFakeClock); } public void testGetNonStartedScheduledRecordings() { ScheduledRecording recording = mDvrDataManager .addScheduledRecordingInternal(createNewScheduledRecordingStartingNow()); List result = mDvrDataManager.getNonStartedScheduledRecordings(); MoreAsserts.assertContentsInAnyOrder(result, recording); } public void testGetNonStartedScheduledRecordings_past() { mDvrDataManager.addScheduledRecordingInternal(createNewScheduledRecordingStartingNow()); mFakeClock.increment(TimeUnit.MINUTES, 6); List result = mDvrDataManager.getNonStartedScheduledRecordings(); MoreAsserts.assertContentsInAnyOrder(result); } @NonNull private ScheduledRecording createNewScheduledRecordingStartingNow() { return ScheduledRecording.buildFrom(RecordingTestUtils .createTestRecordingWithIdAndPeriod( ScheduledRecording.ID_NOT_SET, INPUT_ID, CHANNEL_ID, mFakeClock.currentTimeMillis(), mFakeClock.currentTimeMillis() + TimeUnit.MINUTES.toMillis(5))) .setState(ScheduledRecording.STATE_RECORDING_NOT_STARTED) .build(); } }