From a04c45e405cdf05d32052e689386dd3d25e5942a Mon Sep 17 00:00:00 2001 From: Mihai-Cristian Condrea Date: Tue, 16 Sep 2025 17:49:46 +0300 Subject: [PATCH] Add test for AppUsageNotificationReceiver --- .../AppUsageNotificationReceiverTest.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 app/src/test/java/com/d4rk/androidtutorials/java/notifications/receivers/AppUsageNotificationReceiverTest.java diff --git a/app/src/test/java/com/d4rk/androidtutorials/java/notifications/receivers/AppUsageNotificationReceiverTest.java b/app/src/test/java/com/d4rk/androidtutorials/java/notifications/receivers/AppUsageNotificationReceiverTest.java new file mode 100644 index 00000000..69775c11 --- /dev/null +++ b/app/src/test/java/com/d4rk/androidtutorials/java/notifications/receivers/AppUsageNotificationReceiverTest.java @@ -0,0 +1,42 @@ +package com.d4rk.androidtutorials.java.notifications.receivers; + +import android.content.Context; +import android.content.Intent; + +import androidx.work.OneTimeWorkRequest; +import androidx.work.WorkManager; + +import com.d4rk.androidtutorials.java.notifications.workers.AppUsageNotificationWorker; + +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; + +public class AppUsageNotificationReceiverTest { + + @Test + public void onReceive_enqueuesOneTimeWorkRequestForAppUsageNotificationWorker() { + Context context = mock(Context.class); + Intent intent = mock(Intent.class); + WorkManager workManager = mock(WorkManager.class); + + try (MockedStatic mockedWorkManager = mockStatic(WorkManager.class)) { + mockedWorkManager.when(() -> WorkManager.getInstance(context)).thenReturn(workManager); + + AppUsageNotificationReceiver receiver = new AppUsageNotificationReceiver(); + receiver.onReceive(context, intent); + + ArgumentCaptor requestCaptor = ArgumentCaptor.forClass(OneTimeWorkRequest.class); + verify(workManager).enqueue(requestCaptor.capture()); + + OneTimeWorkRequest request = requestCaptor.getValue(); + assertEquals(AppUsageNotificationWorker.class.getName(), + request.getWorkSpec().workerClassName); + } + } +}