aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java')
-rw-r--r--tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java73
1 files changed, 41 insertions, 32 deletions
diff --git a/tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java b/tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java
index 8e3b4fd4..2fb0228b 100644
--- a/tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java
+++ b/tests/unit/src/com/android/tv/dvr/RecordingTaskTest.java
@@ -16,7 +16,6 @@
package com.android.tv.dvr;
-import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Matchers.argThat;
@@ -26,6 +25,8 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import android.media.tv.TvRecordingClient;
+import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -34,8 +35,8 @@ import android.support.test.filters.SdkSuppress;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.SmallTest;
-import com.android.tv.common.recording.TvRecording;
import com.android.tv.data.Channel;
+import com.android.tv.data.Program;
import com.android.tv.dvr.RecordingTask.State;
import com.android.tv.testing.FakeClock;
import com.android.tv.testing.dvr.RecordingTestUtils;
@@ -52,19 +53,18 @@ import java.util.concurrent.TimeUnit;
* Tests for {@link RecordingTask}.
*/
@SmallTest
-@SdkSuppress(minSdkVersion = 23)
+@SdkSuppress(minSdkVersion = Build.VERSION_CODES.N)
public class RecordingTaskTest extends AndroidTestCase {
private static final long DURATION = TimeUnit.MINUTES.toMillis(30);
private static final long START_OFFSET = Scheduler.MS_TO_WAKE_BEFORE_START;
+ public static final int CHANNEL_ID = 273;
private FakeClock mFakeClock;
private DvrDataManagerInMemoryImpl mDataManager;
- @Mock
- Handler mMockHandler;
- @Mock
- DvrSessionManager mMockSessionManager;
- @Mock
- TvRecording.TvRecordingClient mMockTvRecordingClient;
+ @Mock Handler mMockHandler;
+ @Mock DvrManager mDvrManager;
+ @Mock DvrSessionManager mMockSessionManager;
+ @Mock TvRecordingClient mMockTvRecordingClient;
@Override
protected void setUp() throws Exception {
@@ -74,17 +74,16 @@ public class RecordingTaskTest extends AndroidTestCase {
}
MockitoAnnotations.initMocks(this);
mFakeClock = FakeClock.createWithCurrentTime();
- mDataManager = new DvrDataManagerInMemoryImpl(getContext());
+ mDataManager = new DvrDataManagerInMemoryImpl(getContext(), mFakeClock);
}
-
public void testHandle_init() {
- Recording r = createRecording();
- RecordingTask task = createRecordingTask(r);
- Channel channel = r.getChannel();
+ Channel channel = createTestChannel();
+ ScheduledRecording r = createRecording(channel);
+ RecordingTask task = createRecordingTask(r, channel);
String inputId = channel.getInputId();
when(mMockSessionManager.canAcquireDvrSession(inputId, channel)).thenReturn(true);
- when(mMockSessionManager.acquireDvrSession(inputId, channel))
+ when(mMockSessionManager.createTvRecordingClient("tag", task, null))
.thenReturn(mMockTvRecordingClient);
when(mMockHandler.sendEmptyMessageDelayed(anyInt(), anyLong())).thenReturn(true);
@@ -94,49 +93,59 @@ public class RecordingTaskTest extends AndroidTestCase {
assertEquals(State.CONNECTION_PENDING, task.getState());
verify(mMockSessionManager).canAcquireDvrSession(inputId, channel);
- verify(mMockSessionManager).acquireDvrSession(inputId, channel);
- verify(mMockTvRecordingClient).connect(eq(inputId), any(TvRecording.ClientCallback.class));
+ verify(mMockSessionManager).createTvRecordingClient("tag", task, null);
+ verify(mMockTvRecordingClient).tune(eq(inputId), eq(channel.getUri()));
verifySendMessageAt(RecordingTask.MESSAGE_START_RECORDING, uptime + delay);
verifyNoMoreInteractions(mMockHandler, mMockTvRecordingClient, mMockSessionManager);
}
+ private static Channel createTestChannel() {
+ return new Channel.Builder().setId(CHANNEL_ID).setDisplayName("Test Ch " + CHANNEL_ID)
+ .build();
+ }
public void testHandle_init_cannotAcquireSession() {
- Recording r = createRecording();
- r = mDataManager.addRecordingInternal(r);
- RecordingTask task = createRecordingTask(r);
+ Channel channel = createTestChannel();
+ ScheduledRecording r = createRecording(channel);
+ r = mDataManager.addScheduledRecordingInternal(r);
+ RecordingTask task = createRecordingTask(r, channel);
- when(mMockSessionManager.canAcquireDvrSession(r.getChannel().getInputId(), r.getChannel()))
+ when(mMockSessionManager.canAcquireDvrSession(channel.getInputId(), channel))
.thenReturn(false);
assertTrue(task.handleMessage(createMessage(RecordingTask.MESSAGE_INIT)));
assertEquals(State.ERROR, task.getState());
verifySendMessage(Scheduler.HandlerWrapper.MESSAGE_REMOVE);
- Recording updatedRecording = mDataManager.getRecording(r.getId());
- assertEquals("status", Recording.STATE_RECORDING_FAILED, updatedRecording.getState());
+ ScheduledRecording updatedScheduledRecording = mDataManager
+ .getScheduledRecording(r.getId());
+ assertEquals("status", ScheduledRecording.STATE_RECORDING_FAILED,
+ updatedScheduledRecording.getState());
}
public void testOnConnected() {
- Recording r = createRecording();
- mDataManager.addRecording(r);
- RecordingTask task = createRecordingTask(r);
+ Channel channel = createTestChannel();
+ ScheduledRecording r = createRecording(channel);
+ mDataManager.addScheduledRecording(r);
+ RecordingTask task = createRecordingTask(r, channel);
- task.onConnected();
+ task.onTuned(channel.getUri());
assertEquals(State.CONNECTED, task.getState());
}
- private Recording createRecording() {
+ private ScheduledRecording createRecording(Channel c) {
long startTime = mFakeClock.currentTimeMillis() + START_OFFSET;
long endTime = startTime + DURATION;
- return RecordingTestUtils.createTestRecordingWithPeriod(startTime, endTime);
+ return RecordingTestUtils.createTestRecordingWithPeriod(c.getId(), startTime, endTime);
}
- private RecordingTask createRecordingTask(Recording r) {
- RecordingTask recordingTask = new RecordingTask(r, mMockSessionManager, mDataManager,
- mFakeClock);
+ private RecordingTask createRecordingTask(ScheduledRecording r, Channel channel) {
+ Program p = r.getProgramId() == ScheduledRecording.ID_NOT_SET ? null
+ : new Program.Builder().setId(r.getId()).build();
+ RecordingTask recordingTask = new RecordingTask(r, channel, mDvrManager,
+ mMockSessionManager, mDataManager, mFakeClock);
recordingTask.setHandler(mMockHandler);
return recordingTask;
}