Skip to content

Commit 086458a

Browse files
Merge pull request #215 from MihaiCristianCondrea/codex/add-tests-for-appusagenotificationworker-enqueue
Add test for AppUsageNotificationReceiver
2 parents 5726f5f + a04c45e commit 086458a

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.d4rk.androidtutorials.java.notifications.receivers;
2+
3+
import android.content.Context;
4+
import android.content.Intent;
5+
6+
import androidx.work.OneTimeWorkRequest;
7+
import androidx.work.WorkManager;
8+
9+
import com.d4rk.androidtutorials.java.notifications.workers.AppUsageNotificationWorker;
10+
11+
import org.junit.Test;
12+
import org.mockito.ArgumentCaptor;
13+
import org.mockito.MockedStatic;
14+
15+
import static org.junit.Assert.assertEquals;
16+
import static org.mockito.Mockito.mock;
17+
import static org.mockito.Mockito.mockStatic;
18+
import static org.mockito.Mockito.verify;
19+
20+
public class AppUsageNotificationReceiverTest {
21+
22+
@Test
23+
public void onReceive_enqueuesOneTimeWorkRequestForAppUsageNotificationWorker() {
24+
Context context = mock(Context.class);
25+
Intent intent = mock(Intent.class);
26+
WorkManager workManager = mock(WorkManager.class);
27+
28+
try (MockedStatic<WorkManager> mockedWorkManager = mockStatic(WorkManager.class)) {
29+
mockedWorkManager.when(() -> WorkManager.getInstance(context)).thenReturn(workManager);
30+
31+
AppUsageNotificationReceiver receiver = new AppUsageNotificationReceiver();
32+
receiver.onReceive(context, intent);
33+
34+
ArgumentCaptor<OneTimeWorkRequest> requestCaptor = ArgumentCaptor.forClass(OneTimeWorkRequest.class);
35+
verify(workManager).enqueue(requestCaptor.capture());
36+
37+
OneTimeWorkRequest request = requestCaptor.getValue();
38+
assertEquals(AppUsageNotificationWorker.class.getName(),
39+
request.getWorkSpec().workerClassName);
40+
}
41+
}
42+
}

0 commit comments

Comments
 (0)