Snap for 10486386 from f53d7665904bf7cb393a2833506bb48a8f42b008 to mainline-ipsec-release
Change-Id: Ibe3809654db213aea4820b18194a5c35f1eb76b9
diff --git a/service/java/com/android/server/healthconnect/migration/MigrationStateManager.java b/service/java/com/android/server/healthconnect/migration/MigrationStateManager.java
index ad48098..56eef38 100644
--- a/service/java/com/android/server/healthconnect/migration/MigrationStateManager.java
+++ b/service/java/com/android/server/healthconnect/migration/MigrationStateManager.java
@@ -130,11 +130,14 @@
}
}
- /** Clears all registered {@link StateChangedListener}. Used in testing. */
+ /**
+ * Clears the initialized instance such that {@link #initializeInstance} will create a new
+ * instance, for use in tests.
+ */
@VisibleForTesting
- void clearListeners() {
- synchronized (mLock) {
- mStateChangedListeners.clear();
+ public static void resetInitializedInstanceForTest() {
+ synchronized (sInstanceLock) {
+ sMigrationStateManager = null;
}
}
diff --git a/tests/unittests/Android.bp b/tests/unittests/Android.bp
index c733662..d963f10 100644
--- a/tests/unittests/Android.bp
+++ b/tests/unittests/Android.bp
@@ -29,7 +29,7 @@
"mts-healthfitness",
"general-tests"
],
- defaults: ["mts-target-sdk-version-current"],
+ defaults: ["mts-target-sdk-version-current", "modules-utils-testable-device-config-defaults"],
static_libs: [
"service-healthfitness.impl",
"framework-healthfitness.impl",
diff --git a/tests/unittests/src/com/android/server/healthconnect/HealthConnectManagerServiceTest.java b/tests/unittests/src/com/android/server/healthconnect/HealthConnectManagerServiceTest.java
index 987c1b3..0413b7d 100644
--- a/tests/unittests/src/com/android/server/healthconnect/HealthConnectManagerServiceTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/HealthConnectManagerServiceTest.java
@@ -39,6 +39,7 @@
import androidx.test.platform.app.InstrumentationRegistry;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.SystemService;
import com.android.server.appop.AppOpsManagerLocal;
import com.android.server.healthconnect.backuprestore.BackupRestore;
@@ -47,17 +48,25 @@
import com.google.common.truth.Truth;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
public class HealthConnectManagerServiceTest {
+
private static final String HEALTH_CONNECT_DAILY_JOB_NAMESPACE = "HEALTH_CONNECT_DAILY_JOB";
private static final String ANDROID_SERVER_PACKAGE_NAME = "com.android.server";
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(BackupRestore.BackupRestoreJobService.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock Context mContext;
@Mock private SystemService.TargetUser mMockTargetUser;
@Mock private JobScheduler mJobScheduler;
@@ -66,19 +75,10 @@
@Mock private PermissionManager mPermissionManager;
@Mock private AppOpsManagerLocal mAppOpsManagerLocal;
@Mock private PreferenceHelper mPreferenceHelper;
- private MockitoSession mStaticMockSession;
private HealthConnectManagerService mHealthConnectManagerService;
@Before
public void setUp() throws PackageManager.NameNotFoundException {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .mockStatic(BackupRestore.BackupRestoreJobService.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
-
InstrumentationRegistry.getInstrumentation()
.getUiAutomation()
.adoptShellPermissionIdentity(Manifest.permission.READ_DEVICE_CONFIG);
@@ -122,11 +122,6 @@
mHealthConnectManagerService = new HealthConnectManagerService(mContext);
}
- @After
- public void tearDown() {
- mStaticMockSession.finishMocking();
- }
-
@Test
public void testCreateService() {
Truth.assertThat(mHealthConnectManagerService).isNotNull();
diff --git a/tests/unittests/src/com/android/server/healthconnect/HealthConnectServiceImplTest.java b/tests/unittests/src/com/android/server/healthconnect/HealthConnectServiceImplTest.java
index 29c1d22..5729453 100644
--- a/tests/unittests/src/com/android/server/healthconnect/HealthConnectServiceImplTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/HealthConnectServiceImplTest.java
@@ -58,7 +58,7 @@
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.LocalManagerRegistry;
import com.android.server.appop.AppOpsManagerLocal;
import com.android.server.healthconnect.migration.MigrationCleaner;
@@ -72,11 +72,10 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.io.File;
@@ -143,6 +142,16 @@
"insertMinDataMigrationSdkExtensionVersion",
"asBinder");
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(Environment.class)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(LocalManagerRegistry.class)
+ .mockStatic(UserHandle.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock private TransactionManager mTransactionManager;
@Mock private HealthConnectPermissionHelper mHealthConnectPermissionHelper;
@Mock private MigrationCleaner mMigrationCleaner;
@@ -156,21 +165,11 @@
@Mock IMigrationCallback mCallback;
private Context mContext;
private HealthConnectServiceImpl mHealthConnectService;
- private MockitoSession mStaticMockSession;
private UserHandle mUserHandle;
private File mMockDataDirectory;
@Before
public void setUp() throws Exception {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(Environment.class)
- .mockStatic(PreferenceHelper.class)
- .mockStatic(LocalManagerRegistry.class)
- .mockStatic(UserHandle.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
mContext = InstrumentationRegistry.getInstrumentation().getContext();
mMockDataDirectory = mContext.getDir("mock_data", Context.MODE_PRIVATE);
when(Environment.getDataDirectory()).thenReturn(mMockDataDirectory);
@@ -197,7 +196,6 @@
public void tearDown() {
deleteDir(mMockDataDirectory);
clearInvocations(mPreferenceHelper);
- mStaticMockSession.finishMocking();
}
@Test
diff --git a/tests/unittests/src/com/android/server/healthconnect/HealthConnectThreadSchedulerTest.java b/tests/unittests/src/com/android/server/healthconnect/HealthConnectThreadSchedulerTest.java
index afcb889..97e115d 100644
--- a/tests/unittests/src/com/android/server/healthconnect/HealthConnectThreadSchedulerTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/HealthConnectThreadSchedulerTest.java
@@ -25,8 +25,6 @@
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
-import com.android.server.healthconnect.storage.TestUtils;
-
import com.google.common.truth.Truth;
import org.junit.Before;
diff --git a/tests/unittests/src/com/android/server/healthconnect/TestUtils.java b/tests/unittests/src/com/android/server/healthconnect/TestUtils.java
new file mode 100644
index 0000000..3f63cc1
--- /dev/null
+++ b/tests/unittests/src/com/android/server/healthconnect/TestUtils.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2023 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.server.healthconnect;
+
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.function.Predicate;
+
+public final class TestUtils {
+
+ public static void waitForTaskToFinishSuccessfully(Runnable task) throws TimeoutException {
+ Instant startTime = Instant.now();
+ while (true) {
+ try {
+ task.run();
+ return;
+ } catch (Exception e) {
+ // ignore
+ } finally {
+ if (ChronoUnit.SECONDS.between(startTime, Instant.now()) > 3) {
+ throw new TimeoutException();
+ }
+ }
+ }
+ }
+
+ static void waitForCondition(Predicate<Void> predicate, int timeoutSeconds)
+ throws TimeoutException {
+ Instant startTime = Instant.now();
+ while (!predicate.test(null)) {
+ if (ChronoUnit.SECONDS.between(startTime, Instant.now()) > timeoutSeconds) {
+ throw new TimeoutException();
+ }
+ }
+ }
+
+ public static void waitForAllScheduledTasksToComplete() throws TimeoutException {
+ waitForCondition(
+ (unused) ->
+ (HealthConnectThreadScheduler.sInternalBackgroundExecutor.getTaskCount()
+ == HealthConnectThreadScheduler.sInternalBackgroundExecutor
+ .getCompletedTaskCount())
+ || (HealthConnectThreadScheduler.sControllerExecutor.getTaskCount()
+ == HealthConnectThreadScheduler.sControllerExecutor
+ .getCompletedTaskCount())
+ || (HealthConnectThreadScheduler.sBackgroundThreadExecutor
+ .getTaskCount()
+ == HealthConnectThreadScheduler.sBackgroundThreadExecutor
+ .getCompletedTaskCount())
+ || (HealthConnectThreadScheduler.sForegroundExecutor.getTaskCount()
+ == HealthConnectThreadScheduler.sForegroundExecutor
+ .getCompletedTaskCount()),
+ 15);
+ }
+}
diff --git a/tests/unittests/src/com/android/server/healthconnect/backuprestore/BackupRestoreTest.java b/tests/unittests/src/com/android/server/healthconnect/backuprestore/BackupRestoreTest.java
index 391a687..bd0aca3 100644
--- a/tests/unittests/src/com/android/server/healthconnect/backuprestore/BackupRestoreTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/backuprestore/BackupRestoreTest.java
@@ -71,6 +71,7 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.migration.MigrationStateManager;
import com.android.server.healthconnect.permission.FirstGrantTimeManager;
import com.android.server.healthconnect.permission.GrantTimeXmlHelper;
@@ -81,13 +82,12 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.io.File;
@@ -101,6 +101,18 @@
public class BackupRestoreTest {
private static final String DATABASE_NAME = "healthconnect.db";
private static final String GRANT_TIME_FILE_NAME = "health-permissions-first-grant-times.xml";
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(Environment.class)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(BackupRestore.BackupRestoreJobService.class)
+ .mockStatic(GrantTimeXmlHelper.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock Context mServiceContext;
@Mock private TransactionManager mTransactionManager;
@Mock private PreferenceHelper mPreferenceHelper;
@@ -110,23 +122,12 @@
@Mock private JobScheduler mJobScheduler;
@Captor ArgumentCaptor<JobInfo> mJobInfoArgumentCaptor;
private BackupRestore mBackupRestore;
- private MockitoSession mStaticMockSession;
private UserHandle mUserHandle = UserHandle.of(UserHandle.myUserId());
private File mMockDataDirectory;
private File mMockBackedDataDirectory;
@Before
public void setUp() throws Exception {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(Environment.class)
- .mockStatic(PreferenceHelper.class)
- .mockStatic(TransactionManager.class)
- .mockStatic(BackupRestore.BackupRestoreJobService.class)
- .mockStatic(GrantTimeXmlHelper.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
mContext = InstrumentationRegistry.getInstrumentation().getContext();
mMockDataDirectory = mContext.getDir("mock_data", Context.MODE_PRIVATE);
mMockBackedDataDirectory = mContext.getDir("mock_backed_data", Context.MODE_PRIVATE);
@@ -147,7 +148,6 @@
FilesUtil.deleteDir(mMockBackedDataDirectory);
clearInvocations(mPreferenceHelper);
clearInvocations(mTransactionManager);
- mStaticMockSession.finishMocking();
}
@Test
diff --git a/tests/unittests/src/com/android/server/healthconnect/logging/DailyLoggingServiceTest.java b/tests/unittests/src/com/android/server/healthconnect/logging/DailyLoggingServiceTest.java
index 56f9f62..df60f6f 100644
--- a/tests/unittests/src/com/android/server/healthconnect/logging/DailyLoggingServiceTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/logging/DailyLoggingServiceTest.java
@@ -35,6 +35,7 @@
import android.os.UserHandle;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.logging.DailyLoggingService;
import com.android.server.healthconnect.storage.TransactionManager;
import com.android.server.healthconnect.storage.datatypehelpers.BloodPressureRecordHelper;
@@ -46,19 +47,27 @@
import com.android.server.healthconnect.storage.datatypehelpers.TotalCaloriesBurnedRecordHelper;
import com.android.server.healthconnect.storage.datatypehelpers.Vo2MaxRecordHelper;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.mockito.Answers;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.util.List;
public class DailyLoggingServiceTest {
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(HealthFitnessStatsLog.class)
+ .mockStatic(DatabaseUtils.class)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(HealthConnectManager.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@@ -66,21 +75,11 @@
@Mock private PackageInfo mPackageInfoNotHoldingPermission;
@Mock private PackageInfo mPackageInfoNotConnectedApp;
private final UserHandle mCurrentUser = Process.myUserHandle();
- private MockitoSession mStaticMockSession;
private static final String HEALTH_PERMISSION = "HEALTH_PERMISSION";
private static final String NOT_HEALTH_PERMISSION = "NOT_HEALTH_PERMISSION";
@Before
public void mockStatsLog() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(HealthFitnessStatsLog.class)
- .mockStatic(DatabaseUtils.class)
- .mockStatic(TransactionManager.class)
- .mockStatic(HealthConnectManager.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
ExtendedMockito.doReturn(true)
.when(() -> HealthConnectManager.isHealthPermission(mContext, HEALTH_PERMISSION));
ExtendedMockito.doReturn(false)
@@ -102,11 +101,6 @@
new int[] {PackageInfo.REQUESTED_PERMISSION_NEVER_FOR_LOCATION};
}
- @After
- public void tearDown() {
- mStaticMockSession.finishMocking();
- }
-
@Test
public void testDatabaseLogsStats() {
diff --git a/tests/unittests/src/com/android/server/healthconnect/logging/HealthConnectServiceLoggerTest.java b/tests/unittests/src/com/android/server/healthconnect/logging/HealthConnectServiceLoggerTest.java
index 70b609c..ed2ccbf 100644
--- a/tests/unittests/src/com/android/server/healthconnect/logging/HealthConnectServiceLoggerTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/logging/HealthConnectServiceLoggerTest.java
@@ -44,30 +44,18 @@
import android.health.HealthFitnessStatsLog;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.logging.HealthConnectServiceLogger;
import com.android.server.healthconnect.logging.HealthConnectServiceLogger.ApiMethods;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
-import org.mockito.MockitoSession;
public class HealthConnectServiceLoggerTest {
- private MockitoSession mStaticMockSession;
-
- @Before
- public void mockStatsLog() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(HealthFitnessStatsLog.class)
- .startMocking();
- }
-
- @After
- public void tearDown() {
- mStaticMockSession.finishMocking();
- }
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this).mockStatic(HealthFitnessStatsLog.class).build();
@Test
public void testDoNotLog_HoldsDataManagementPermission() {
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationBroadcastSchedulingTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationBroadcastSchedulingTest.java
index dcdb2e7..991690a 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationBroadcastSchedulingTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationBroadcastSchedulingTest.java
@@ -40,18 +40,17 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.HealthConnectDeviceConfigManager;
import com.android.server.healthconnect.HealthConnectThreadScheduler;
import com.android.server.healthconnect.storage.datatypehelpers.PreferenceHelper;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import org.mockito.stubbing.Answer;
import org.mockito.verification.VerificationMode;
@@ -63,6 +62,16 @@
@RunWith(AndroidJUnit4.class)
public class MigrationBroadcastSchedulingTest {
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(MigrationStateManager.class)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(HealthConnectThreadScheduler.class)
+ .mockStatic(HealthConnectDeviceConfigManager.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock private Context mContext;
@Mock private JobScheduler mJobScheduler;
@Mock private MigrationStateManager mMigrationStateManager;
@@ -71,8 +80,6 @@
private MigrationBroadcastScheduler mMigrationBroadcastScheduler;
- private MockitoSession mStaticMockSession;
-
private static final int MIGRATION_STATE_ALLOWED_COUNT_MOCK_VALUE =
MIGRATION_STATE_ALLOWED_COUNT_DEFAULT_FLAG_VALUE;
private static final int MIGRATION_STATE_IN_PROGRESS_COUNT_MOCK_VALUE =
@@ -89,17 +96,6 @@
@Before
public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(MigrationStateManager.class)
- .mockStatic(PreferenceHelper.class)
- .mockStatic(HealthConnectThreadScheduler.class)
- .mockStatic(HealthConnectDeviceConfigManager.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
-
- MockitoAnnotations.initMocks(this);
-
when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
when(mJobScheduler.forNamespace(MIGRATION_BROADCAST_NAMESPACE)).thenReturn(mJobScheduler);
when(HealthConnectDeviceConfigManager.getInitialisedInstance())
@@ -114,11 +110,6 @@
mMigrationBroadcastScheduler = Mockito.spy(new MigrationBroadcastScheduler(0));
}
- @After
- public void tearDown() {
- mStaticMockSession.finishMocking();
- }
-
@Test
public void testPrescheduleNewJobs_updateMigrationState_newJobsScheduled() {
when(MigrationStateManager.initializeInstance(anyInt())).thenCallRealMethod();
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateChangeJobTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateChangeJobTest.java
index 65b182c..ef58930 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateChangeJobTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateChangeJobTest.java
@@ -55,19 +55,17 @@
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.HealthConnectDailyService;
import com.android.server.healthconnect.HealthConnectDeviceConfigManager;
import com.android.server.healthconnect.storage.datatypehelpers.PreferenceHelper;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
import java.time.Duration;
import java.time.Instant;
@@ -77,6 +75,16 @@
@RunWith(AndroidJUnit4.class)
public class MigrationStateChangeJobTest {
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(MigrationStateManager.class)
+ .mockStatic(HealthConnectDailyService.class)
+ .mockStatic(HealthConnectDeviceConfigManager.class)
+ .build();
+
@Mock MigrationStateManager mMigrationStateManager;
@Mock PreferenceHelper mPreferenceHelper;
@Mock private Context mContext;
@@ -112,19 +120,8 @@
HealthConnectDeviceConfigManager
.MIGRATION_PAUSE_JOB_RUN_INTERVAL_HOURS_DEFAULT_FLAG_VALUE);
- private MockitoSession mStaticMockSession;
-
@Before
public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .mockStatic(MigrationStateManager.class)
- .mockStatic(HealthConnectDailyService.class)
- .mockStatic(HealthConnectDeviceConfigManager.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
when(MigrationStateManager.getInitialisedInstance()).thenReturn(mMigrationStateManager);
when(PreferenceHelper.getInstance()).thenReturn(mPreferenceHelper);
when(mJobScheduler.forNamespace(MIGRATION_STATE_CHANGE_NAMESPACE))
@@ -156,7 +153,6 @@
clearInvocations(mPreferenceHelper);
clearInvocations(mMigrationStateManager);
clearInvocations(mHealthConnectDeviceConfigManager);
- mStaticMockSession.finishMocking();
}
/** Expected behavior: No changes to the state */
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateManagerTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateManagerTest.java
index 926ebce..80f1eeb 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateManagerTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationStateManagerTest.java
@@ -71,7 +71,9 @@
import androidx.test.runner.AndroidJUnit4;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.HealthConnectDeviceConfigManager;
+import com.android.server.healthconnect.TestUtils;
import com.android.server.healthconnect.migration.MigrationStateManager.IllegalMigrationStateException;
import com.android.server.healthconnect.storage.datatypehelpers.PreferenceHelper;
@@ -79,11 +81,10 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.time.Duration;
@@ -92,10 +93,22 @@
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
/** Test class for the MigrationStateManager class. */
@RunWith(AndroidJUnit4.class)
public class MigrationStateManagerTest {
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(MigrationStateChangeJob.class)
+ .mockStatic(HexEncoding.class)
+ .mockStatic(HealthConnectDeviceConfigManager.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock private Context mContext;
@Mock private PackageManager mPackageManager;
@Mock private PreferenceHelper mPreferenceHelper;
@@ -105,7 +118,7 @@
@Mock private MockListener mMockListener;
@Mock private HealthConnectDeviceConfigManager mHealthConnectDeviceConfigManager;
private MigrationStateManager mMigrationStateManager;
- private MockitoSession mStaticMockSession;
+
private static final UserHandle DEFAULT_USER_HANDLE = UserHandle.of(UserHandle.myUserId());
private static final long EXECUTION_TIME_BUFFER_MOCK_VALUE =
TimeUnit.MINUTES.toMillis(
@@ -120,15 +133,6 @@
@Before
public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .mockStatic(MigrationStateChangeJob.class)
- .mockStatic(HexEncoding.class)
- .mockStatic(HealthConnectDeviceConfigManager.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
when(mContext.getResources()).thenReturn(mResources);
when(mResources.getIdentifier(anyString(), anyString(), anyString())).thenReturn(1);
when(mResources.getString(anyInt())).thenReturn(MOCK_CONFIGURED_PACKAGE);
@@ -142,17 +146,17 @@
.thenReturn(NON_IDLE_STATE_TIMEOUT_MOCK_VALUE);
when(mHealthConnectDeviceConfigManager.getMaxStartMigrationCalls())
.thenReturn(MAX_START_MIGRATION_CALLS_MOCK_VALUE);
- MigrationStateManager.initializeInstance(DEFAULT_USER_HANDLE.getIdentifier());
- mMigrationStateManager = MigrationStateManager.getInitialisedInstance();
- mMigrationStateManager.clearListeners();
+ MigrationStateManager.resetInitializedInstanceForTest();
+ mMigrationStateManager =
+ MigrationStateManager.initializeInstance(DEFAULT_USER_HANDLE.getIdentifier());
mMigrationStateManager.addStateChangedListener(mMockListener::onMigrationStateChanged);
}
@After
- public void tearDown() {
- mMigrationStateManager.clearListeners();
+ public void tearDown() throws TimeoutException {
+ TestUtils.waitForAllScheduledTasksToComplete();
+ MigrationStateManager.resetInitializedInstanceForTest();
clearInvocations(mPreferenceHelper);
- mStaticMockSession.finishMocking();
}
/**
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationUiStateManagerTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationUiStateManagerTest.java
index ec85fde..7892077 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/MigrationUiStateManagerTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/MigrationUiStateManagerTest.java
@@ -33,28 +33,34 @@
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.migration.notification.MigrationNotificationSender;
import com.android.server.healthconnect.storage.datatypehelpers.PreferenceHelper;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
/** Test class for the MigrationUiStateManager class. */
@RunWith(AndroidJUnit4.class)
public class MigrationUiStateManagerTest {
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock private Context mContext;
@Mock private MigrationStateManager mMigrationStateManager;
@Mock private MigrationNotificationSender mMigrationNotificationSender;
@Mock private PreferenceHelper mPreferenceHelper;
- private MockitoSession mStaticMockSession;
private MigrationUiStateManager mMigrationUiStateManager;
private static final UserHandle DEFAULT_USER_HANDLE = UserHandle.of(UserHandle.myUserId());
@@ -63,12 +69,6 @@
@Before
public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
mContext = InstrumentationRegistry.getInstrumentation().getContext();
when(PreferenceHelper.getInstance()).thenReturn(mPreferenceHelper);
@@ -84,7 +84,6 @@
@After
public void tearDown() {
clearInvocations(mPreferenceHelper);
- mStaticMockSession.finishMocking();
}
@Test
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/MigratorPackageChangesReceiverTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/MigratorPackageChangesReceiverTest.java
index cf9eec7..18fcfb1 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/MigratorPackageChangesReceiverTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/MigratorPackageChangesReceiverTest.java
@@ -38,21 +38,29 @@
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.storage.datatypehelpers.PreferenceHelper;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
@RunWith(AndroidJUnit4.class)
public class MigratorPackageChangesReceiverTest {
public static final String INTENT_URI_SCHEME = "package";
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(MigrationStateManager.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock MigrationStateManager mMigrationStateManager;
@Mock PreferenceHelper mPreferenceHelper;
@Mock private Context mContext;
@@ -60,19 +68,11 @@
@Mock private UserManager mUserManager;
@Mock private Intent mIntent;
@Mock private Uri mUri;
- private MockitoSession mStaticMockSession;
private MigratorPackageChangesReceiver mMigratorPackageChangesReceiver;
private static final UserHandle DEFAULT_USER_HANDLE = UserHandle.of(UserHandle.myUserId());
@Before
public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .mockStatic(MigrationStateManager.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
when(MigrationStateManager.getInitialisedInstance()).thenReturn(mMigrationStateManager);
when(PreferenceHelper.getInstance()).thenReturn(mPreferenceHelper);
mMigratorPackageChangesReceiver =
@@ -86,7 +86,6 @@
public void tearDown() {
clearInvocations(mPreferenceHelper);
clearInvocations(mMigrationStateManager);
- mStaticMockSession.finishMocking();
}
@Test
diff --git a/tests/unittests/src/com/android/server/healthconnect/migration/PriorityMigrationHelperTest.java b/tests/unittests/src/com/android/server/healthconnect/migration/PriorityMigrationHelperTest.java
index 061888b..a1e8372 100644
--- a/tests/unittests/src/com/android/server/healthconnect/migration/PriorityMigrationHelperTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/migration/PriorityMigrationHelperTest.java
@@ -35,18 +35,17 @@
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.storage.TransactionManager;
import com.android.server.healthconnect.storage.datatypehelpers.HealthDataCategoryPriorityHelper;
import com.android.server.healthconnect.storage.utils.StorageUtils;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import org.mockito.verification.VerificationMode;
@@ -58,6 +57,14 @@
@RunWith(AndroidJUnit4.class)
public class PriorityMigrationHelperTest {
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(HealthDataCategoryPriorityHelper.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
private static final long APP_PACKAGE_ID = 1;
private static final long APP_PACKAGE_ID_2 = 2;
private static final long APP_PACKAGE_ID_3 = 3;
@@ -68,18 +75,10 @@
@Mock private Cursor mCursor;
@Mock private TransactionManager mTransactionManager;
@Mock private HealthDataCategoryPriorityHelper mHealthDataCategoryPriorityHelper;
- private MockitoSession mStaticMockSession;
private PriorityMigrationHelper mPriorityMigrationHelper;
@Before
public void setUp() throws Exception {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(TransactionManager.class)
- .mockStatic(HealthDataCategoryPriorityHelper.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
when(HealthDataCategoryPriorityHelper.getInstance())
.thenReturn(mHealthDataCategoryPriorityHelper);
when(TransactionManager.getInitialisedInstance()).thenReturn(mTransactionManager);
@@ -89,7 +88,6 @@
@After
public void tearDown() throws Exception {
- mStaticMockSession.finishMocking();
mPriorityMigrationHelper.clearData(mTransactionManager);
}
diff --git a/tests/unittests/src/com/android/server/healthconnect/permission/GrantTimePersistenceUnitTest.java b/tests/unittests/src/com/android/server/healthconnect/permission/GrantTimePersistenceUnitTest.java
index cab3d0d..e1855be 100644
--- a/tests/unittests/src/com/android/server/healthconnect/permission/GrantTimePersistenceUnitTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/permission/GrantTimePersistenceUnitTest.java
@@ -31,17 +31,17 @@
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.LocalManagerRegistry;
import com.android.server.appop.AppOpsManagerLocal;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.io.File;
@@ -79,20 +79,20 @@
private static final UserGrantTimeState EMPTY_STATE =
new UserGrantTimeState(new ArrayMap<>(), new ArrayMap<>(), 3);
- private MockitoSession mStaticMockSession;
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(Environment.class)
+ .mockStatic(LocalManagerRegistry.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
private final UserHandle mUser = UserHandle.of(UserHandle.myUserId());
private File mMockDataDirectory;
@Mock private AppOpsManagerLocal mAppOpsManagerLocal;
@Before
public void mockApexEnvironment() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(Environment.class)
- .mockStatic(LocalManagerRegistry.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
-
Context context = InstrumentationRegistry.getContext();
mMockDataDirectory = context.getDir("mock_data", Context.MODE_PRIVATE);
Mockito.when(Environment.getDataDirectory()).thenReturn(mMockDataDirectory);
@@ -102,7 +102,6 @@
@After
public void tearDown() {
- mStaticMockSession.finishMocking();
deleteFile(mMockDataDirectory);
}
diff --git a/tests/unittests/src/com/android/server/healthconnect/permission/PermissionPackageChangesOrchestratorTest.java b/tests/unittests/src/com/android/server/healthconnect/permission/PermissionPackageChangesOrchestratorTest.java
index 03fa03e..3821a70 100644
--- a/tests/unittests/src/com/android/server/healthconnect/permission/PermissionPackageChangesOrchestratorTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/permission/PermissionPackageChangesOrchestratorTest.java
@@ -34,21 +34,28 @@
import androidx.test.core.app.ApplicationProvider;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.storage.TransactionManager;
import com.android.server.healthconnect.storage.datatypehelpers.HealthDataCategoryPriorityHelper;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
public class PermissionPackageChangesOrchestratorTest {
private static final String SELF_PACKAGE_NAME = "com.android.healthconnect.unittests";
private static final UserHandle CURRENT_USER = Process.myUserHandle();
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(HealthDataCategoryPriorityHelper.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
private int mCurrentUid;
private PermissionPackageChangesOrchestrator mOrchestrator;
private Context mContext;
@@ -61,17 +68,8 @@
@Mock private HealthDataCategoryPriorityHelper mHealthDataCategoryPriorityHelper;
- private MockitoSession mStaticMockSession;
-
@Before
public void setUp() throws PackageManager.NameNotFoundException {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(TransactionManager.class)
- .mockStatic(HealthDataCategoryPriorityHelper.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
when(HealthDataCategoryPriorityHelper.getInstance())
.thenReturn(mHealthDataCategoryPriorityHelper);
when(TransactionManager.getInitialisedInstance()).thenReturn(mTransactionManager);
@@ -84,11 +82,6 @@
setIntentWasRemoved(/* isIntentRemoved= */ false);
}
- @After
- public void tearDown() throws Exception {
- mStaticMockSession.finishMocking();
- }
-
@Test
public void testPackageAdded_callsTrackerToUpdateState_noGrantTimeOrPermsCalls() {
mOrchestrator.onReceive(mContext, buildPackageIntent(Intent.ACTION_PACKAGE_ADDED));
diff --git a/tests/unittests/src/com/android/server/healthconnect/storage/AutoDeleteServiceTest.java b/tests/unittests/src/com/android/server/healthconnect/storage/AutoDeleteServiceTest.java
index 7881fa5..1b1d9e9 100644
--- a/tests/unittests/src/com/android/server/healthconnect/storage/AutoDeleteServiceTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/storage/AutoDeleteServiceTest.java
@@ -26,7 +26,7 @@
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.storage.AutoDeleteService;
import com.android.server.healthconnect.storage.TransactionManager;
import com.android.server.healthconnect.storage.datatypehelpers.AccessLogsHelper;
@@ -78,14 +78,11 @@
import com.android.server.healthconnect.storage.request.DeleteTableRequest;
import com.android.server.healthconnect.storage.utils.RecordHelperProvider;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import java.util.ArrayList;
import java.util.Collections;
@@ -98,6 +95,18 @@
public class AutoDeleteServiceTest {
private static final String AUTO_DELETE_DURATION_RECORDS_KEY =
"auto_delete_duration_records_key";
+
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(PreferenceHelper.class)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(RecordHelperProvider.class)
+ .mockStatic(AppInfoHelper.class)
+ .mockStatic(ActivityDateHelper.class)
+ .mockStatic(HealthDataCategoryPriorityHelper.class)
+ .build();
+
@Mock private PreferenceHelper mPreferenceHelper;
@Mock private TransactionManager mTransactionManager;
@Mock private RecordHelperProvider mRecordHelperProvider;
@@ -106,27 +115,6 @@
@Mock private ActivityDateHelper mActivityDateHelper;
@Mock private HealthDataCategoryPriorityHelper mHealthDataCategoryPriorityHelper;
@Mock Context mContext;
- private MockitoSession mStaticMockSession;
-
- @Before
- public void setUp() {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(PreferenceHelper.class)
- .mockStatic(TransactionManager.class)
- .mockStatic(RecordHelperProvider.class)
- .mockStatic(AppInfoHelper.class)
- .mockStatic(ActivityDateHelper.class)
- .mockStatic(HealthDataCategoryPriorityHelper.class)
- .startMocking();
-
- MockitoAnnotations.initMocks(this);
- }
-
- @After
- public void tearDown() {
- mStaticMockSession.finishMocking();
- }
@Test
public void testSetRecordRetentionPeriodInDays() {
diff --git a/tests/unittests/src/com/android/server/healthconnect/storage/TestUtils.java b/tests/unittests/src/com/android/server/healthconnect/storage/TestUtils.java
deleted file mode 100644
index 21e86f2..0000000
--- a/tests/unittests/src/com/android/server/healthconnect/storage/TestUtils.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2023 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.server.healthconnect.storage;
-
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import java.util.concurrent.TimeoutException;
-
-public final class TestUtils {
- public static void waitForTaskToFinishSuccessfully(Runnable task) throws TimeoutException {
- Instant startTime = Instant.now();
- while (true) {
- try {
- task.run();
- return;
- } catch (Exception e) {
- // ignore
- } finally {
- if (ChronoUnit.SECONDS.between(startTime, Instant.now()) > 3) {
- throw new TimeoutException();
- }
- }
- }
- }
-}
diff --git a/tests/unittests/src/com/android/server/healthconnect/storage/datatypehelpers/HealthDataCategoryPriorityHelperTest.java b/tests/unittests/src/com/android/server/healthconnect/storage/datatypehelpers/HealthDataCategoryPriorityHelperTest.java
index 54cd620..310a44a 100644
--- a/tests/unittests/src/com/android/server/healthconnect/storage/datatypehelpers/HealthDataCategoryPriorityHelperTest.java
+++ b/tests/unittests/src/com/android/server/healthconnect/storage/datatypehelpers/HealthDataCategoryPriorityHelperTest.java
@@ -30,17 +30,16 @@
import androidx.test.runner.AndroidJUnit4;
-import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import com.android.modules.utils.testing.ExtendedMockitoRule;
import com.android.server.healthconnect.storage.TransactionManager;
import com.android.server.healthconnect.storage.utils.StorageUtils;
import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoSession;
import org.mockito.quality.Strictness;
import java.util.ArrayList;
@@ -63,22 +62,21 @@
private static final int APP_ID_PRIORITY_ORDER_COLUMN_INDEX = 2;
private static final int HEALTH_DATA_CATEGORY_COLUMN_INDEX = 1;
+ @Rule
+ public final ExtendedMockitoRule mExtendedMockitoRule =
+ new ExtendedMockitoRule.Builder(this)
+ .mockStatic(TransactionManager.class)
+ .mockStatic(AppInfoHelper.class)
+ .setStrictness(Strictness.LENIENT)
+ .build();
+
@Mock private Cursor mCursor;
@Mock private TransactionManager mTransactionManager;
@Mock private AppInfoHelper mAppInfoHelper;
private HealthDataCategoryPriorityHelper mHealthDataCategoryPriorityHelper;
- private MockitoSession mStaticMockSession;
@Before
public void setUp() throws Exception {
- mStaticMockSession =
- ExtendedMockito.mockitoSession()
- .mockStatic(TransactionManager.class)
- .mockStatic(AppInfoHelper.class)
- .strictness(Strictness.LENIENT)
- .startMocking();
- MockitoAnnotations.initMocks(this);
-
when(TransactionManager.getInitialisedInstance()).thenReturn(mTransactionManager);
when(mTransactionManager.read(any())).thenReturn(mCursor);
when(AppInfoHelper.getInstance()).thenReturn(mAppInfoHelper);
@@ -93,7 +91,6 @@
@After
public void tearDown() throws Exception {
- mStaticMockSession.finishMocking();
mHealthDataCategoryPriorityHelper.clearData(mTransactionManager);
}