diff options
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.java | 68 |
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() { |