Skip to content

Commit dd3edb6

Browse files
Add unit tests for startup initialization
1 parent a82cdd8 commit dd3edb6

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.d4rk.androidtutorials.java.startup;
2+
3+
import android.content.Context;
4+
5+
import androidx.work.ExistingWorkPolicy;
6+
import androidx.work.OneTimeWorkRequest;
7+
import androidx.work.WorkManager;
8+
9+
import org.junit.Test;
10+
import org.mockito.MockedStatic;
11+
12+
import static org.mockito.ArgumentMatchers.any;
13+
import static org.mockito.ArgumentMatchers.eq;
14+
import static org.mockito.Mockito.mock;
15+
import static org.mockito.Mockito.mockStatic;
16+
import static org.mockito.Mockito.verify;
17+
18+
public class StartupInitializerTest {
19+
20+
@Test
21+
public void schedule_enqueuesWorkWithKeepPolicy() {
22+
Context context = mock(Context.class);
23+
WorkManager workManager = mock(WorkManager.class);
24+
25+
try (MockedStatic<WorkManager> mockedWorkManager = mockStatic(WorkManager.class)) {
26+
mockedWorkManager.when(() -> WorkManager.getInstance(context)).thenReturn(workManager);
27+
28+
StartupInitializer.schedule(context);
29+
30+
verify(workManager).enqueueUniqueWork(
31+
eq("startup_init"),
32+
eq(ExistingWorkPolicy.KEEP),
33+
any(OneTimeWorkRequest.class)
34+
);
35+
}
36+
}
37+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.d4rk.androidtutorials.java.startup;
2+
3+
import android.content.Context;
4+
import android.webkit.CookieManager;
5+
6+
import androidx.work.ListenableWorker;
7+
import androidx.work.WorkerParameters;
8+
9+
import com.d4rk.androidtutorials.java.ads.AdUtils;
10+
11+
import org.junit.Test;
12+
import org.mockito.MockedStatic;
13+
14+
import static org.junit.Assert.assertEquals;
15+
import static org.mockito.Mockito.mock;
16+
import static org.mockito.Mockito.mockStatic;
17+
import static org.mockito.Mockito.when;
18+
19+
public class StartupWorkerTest {
20+
21+
@Test
22+
public void doWork_initializesAdsAndCookiesAndReturnsSuccess() {
23+
Context context = mock(Context.class);
24+
when(context.getApplicationContext()).thenReturn(context);
25+
WorkerParameters parameters = mock(WorkerParameters.class);
26+
StartupWorker worker = new StartupWorker(context, parameters);
27+
28+
try (MockedStatic<AdUtils> mockedAdUtils = mockStatic(AdUtils.class);
29+
MockedStatic<CookieManager> mockedCookieManager = mockStatic(CookieManager.class)) {
30+
mockedCookieManager.when(CookieManager::getInstance).thenReturn(mock(CookieManager.class));
31+
32+
ListenableWorker.Result result = worker.doWork();
33+
34+
mockedAdUtils.verify(() -> AdUtils.initialize(context));
35+
mockedCookieManager.verify(CookieManager::getInstance);
36+
assertEquals(ListenableWorker.Result.success(), result);
37+
}
38+
}
39+
}

0 commit comments

Comments
 (0)