summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Li <pyli@google.com>2021-06-16 16:37:27 -0700
committerPeter Li <pyli@google.com>2021-06-24 08:22:34 +0000
commit4545f187320eb1e4dee07e45e8cd27269eb7879c (patch)
tree7ef56fda0e5e5900e1f668aaf9bc0afb821234c4
parentcece3e92e86869bc477ea704176e534e76a2f46c (diff)
downloadDialer-4545f187320eb1e4dee07e45e8cd27269eb7879c.tar.gz
Migrate HeartBeatLiveData to unit tests
Bug: 187450541 Test: atest CarDialerUnitTests Change-Id: Iff976cd5646b5790ced4c18248dd870906da5d65
-rw-r--r--tests/unittests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java (renamed from tests/robotests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java)43
1 files changed, 20 insertions, 23 deletions
diff --git a/tests/robotests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java b/tests/unittests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java
index d5c421e4..0d2374bd 100644
--- a/tests/robotests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java
+++ b/tests/unittests/src/com/android/car/dialer/livedata/HeartBeatLiveDataTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2021 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.
@@ -16,50 +16,47 @@
package com.android.car.dialer.livedata;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
import android.text.format.DateUtils;
import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
+import androidx.lifecycle.Observer;
+import androidx.test.core.app.ActivityScenario;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
-import com.android.car.dialer.LiveDataObserver;
+import com.android.car.dialer.testing.TestActivity;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowLooper;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class HeartBeatLiveDataTest {
private HeartBeatLiveData mHeartBeatLiveData;
-
- private LifecycleRegistry mLifecycleRegistry;
- private LifecycleOwner mLifecycleOwner;
+ @Mock
+ private Observer<Boolean> mMockObserver;
@Before
public void setup() {
+ MockitoAnnotations.initMocks(this);
mHeartBeatLiveData = new HeartBeatLiveData(DateUtils.SECOND_IN_MILLIS);
- mLifecycleOwner = mock(LifecycleOwner.class);
- mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner);
- when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry);
}
@Test
public void active_onLifecycleStart() {
- LiveDataObserver<HeartBeatLiveData> mockObserver = mock(LiveDataObserver.class);
- mHeartBeatLiveData.observe(mLifecycleOwner, (value) -> mockObserver.onChanged(value));
- verify(mockObserver, never()).onChanged(any());
-
- mLifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
- ShadowLooper.runUiThreadTasks();
-
- verify(mockObserver).onChanged(any());
+ ActivityScenario<TestActivity> activityScenario = ActivityScenario.launch(
+ TestActivity.class);
+ activityScenario.moveToState(Lifecycle.State.CREATED);
+ activityScenario.onActivity(activity ->
+ mHeartBeatLiveData.observe(activity, (value) -> mMockObserver.onChanged(value)));
+ verify(mMockObserver, never()).onChanged(any());
+
+ activityScenario.moveToState(Lifecycle.State.STARTED);
+ verify(mMockObserver).onChanged(any());
}
}