summaryrefslogtreecommitdiff
path: root/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java')
-rw-r--r--adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java68
1 files changed, 54 insertions, 14 deletions
diff --git a/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java b/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
index 53fecba2f..2b9d9fcae 100644
--- a/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
+++ b/adservices/apk/unittest/src/com/android/adservices/adselection/AdSelectionServiceTest.java
@@ -16,24 +16,36 @@
package com.android.adservices.adselection;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.any;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.never;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
+
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.any;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.os.IBinder;
import androidx.test.core.app.ApplicationProvider;
+import com.android.adservices.download.MddJobService;
import com.android.adservices.service.Flags;
+import com.android.adservices.service.MaintenanceJobService;
import com.android.adservices.service.adselection.AdSelectionServiceImpl;
+import com.android.adservices.service.common.PackageChangedReceiver;
+import com.android.adservices.service.consent.AdServicesApiConsent;
+import com.android.adservices.service.consent.ConsentManager;
import com.android.dx.mockito.inline.extended.ExtendedMockito;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
import org.mockito.MockitoSession;
/** Unit test for {@link AdSelectionService} */
@@ -43,10 +55,27 @@ public class AdSelectionServiceTest {
private final Flags mFlagsWithAdSelectionSwitchOff = new FlagsWithKillSwitchOff();
@Mock private AdSelectionServiceImpl mMockAdSelectionServiceImpl;
+ @Mock private ConsentManager mConsentManagerMock;
+ @Mock private PackageManager mPackageManagerMock;
+
+ private MockitoSession mStaticMockSession;
@Before
public void setup() {
- MockitoAnnotations.initMocks(this);
+ mStaticMockSession =
+ ExtendedMockito.mockitoSession()
+ .mockStatic(ConsentManager.class)
+ .spyStatic(AdSelectionServiceImpl.class)
+ .spyStatic(PackageChangedReceiver.class)
+ .mockStatic(MddJobService.class)
+ .mockStatic(MaintenanceJobService.class)
+ .initMocks(this)
+ .startMocking();
+ }
+
+ @After
+ public void teardown() {
+ mStaticMockSession.finishMocking();
}
@Test
@@ -56,25 +85,36 @@ public class AdSelectionServiceTest {
adSelectionService.onCreate();
IBinder binder = adSelectionService.onBind(getIntentForAdSelectionService());
assertNull(binder);
+
+ verify(mConsentManagerMock, never()).getConsent();
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()), never());
}
@Test
public void testBindableAdSelectionServiceKillSwitchOff() {
- MockitoSession session =
- ExtendedMockito.mockitoSession()
- .spyStatic(AdSelectionServiceImpl.class)
- .startMocking();
-
- ExtendedMockito.doReturn(mMockAdSelectionServiceImpl)
+ doReturn(mMockAdSelectionServiceImpl)
.when(() -> AdSelectionServiceImpl.create(any(Context.class)));
-
- AdSelectionService adSelectionService =
+ doReturn(mConsentManagerMock).when(() -> ConsentManager.getInstance(any(Context.class)));
+ doReturn(AdServicesApiConsent.GIVEN).when(mConsentManagerMock).getConsent();
+ ExtendedMockito.doReturn(true)
+ .when(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ doReturn(true).when(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
+ doReturn(true).when(() -> MaintenanceJobService.scheduleIfNeeded(any(), anyBoolean()));
+
+ AdSelectionService adSelectionServiceSpy =
new AdSelectionService(mFlagsWithAdSelectionSwitchOff);
- adSelectionService.onCreate();
- IBinder binder = adSelectionService.onBind(getIntentForAdSelectionService());
+
+ spyOn(adSelectionServiceSpy);
+ doReturn(mPackageManagerMock).when(adSelectionServiceSpy).getPackageManager();
+
+ adSelectionServiceSpy.onCreate();
+ IBinder binder = adSelectionServiceSpy.onBind(getIntentForAdSelectionService());
assertNotNull(binder);
- session.finishMocking();
+ verify(mConsentManagerMock).getConsent();
+ verify(() -> PackageChangedReceiver.enableReceiver(any(Context.class)));
+ verify(() -> MddJobService.scheduleIfNeeded(any(), anyBoolean()));
+ verify(() -> MaintenanceJobService.scheduleIfNeeded(any(), anyBoolean()));
}
private Intent getIntentForAdSelectionService() {