Skip to content

Commit 1bfd24b

Browse files
Merge pull request #183 from MihaiCristianCondrea/codex/add-startupviewmodeltest-with-mocks
Add StartupViewModel unit tests
2 parents 5011ae4 + ca547b8 commit 1bfd24b

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.d4rk.androidtutorials.java.ui.screens.startup;
2+
3+
import static org.mockito.Mockito.mock;
4+
import static org.mockito.Mockito.verify;
5+
6+
import android.app.Activity;
7+
8+
import androidx.arch.core.executor.testing.InstantTaskExecutorRule;
9+
10+
import com.d4rk.androidtutorials.java.data.repository.StartupRepository.OnFormError;
11+
import com.d4rk.androidtutorials.java.domain.startup.LoadConsentFormUseCase;
12+
import com.d4rk.androidtutorials.java.domain.startup.RequestConsentInfoUseCase;
13+
import com.google.android.ump.ConsentRequestParameters;
14+
15+
import org.junit.Rule;
16+
import org.junit.Test;
17+
18+
public class StartupViewModelTest {
19+
20+
@Rule
21+
public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();
22+
23+
@Test
24+
public void requestConsentInfoUpdateDelegatesToUseCase() {
25+
RequestConsentInfoUseCase requestUseCase = mock(RequestConsentInfoUseCase.class);
26+
LoadConsentFormUseCase loadUseCase = mock(LoadConsentFormUseCase.class);
27+
StartupViewModel viewModel = new StartupViewModel(requestUseCase, loadUseCase);
28+
29+
Activity activity = mock(Activity.class);
30+
ConsentRequestParameters params = mock(ConsentRequestParameters.class);
31+
Runnable onSuccess = mock(Runnable.class);
32+
OnFormError onError = mock(OnFormError.class);
33+
34+
viewModel.requestConsentInfoUpdate(activity, params, onSuccess, onError);
35+
36+
verify(requestUseCase).invoke(activity, params, onSuccess, onError);
37+
}
38+
39+
@Test
40+
public void loadConsentFormDelegatesToUseCase() {
41+
RequestConsentInfoUseCase requestUseCase = mock(RequestConsentInfoUseCase.class);
42+
LoadConsentFormUseCase loadUseCase = mock(LoadConsentFormUseCase.class);
43+
StartupViewModel viewModel = new StartupViewModel(requestUseCase, loadUseCase);
44+
45+
Activity activity = mock(Activity.class);
46+
OnFormError onError = mock(OnFormError.class);
47+
48+
viewModel.loadConsentForm(activity, onError);
49+
50+
verify(loadUseCase).invoke(activity, onError);
51+
}
52+
}
53+

0 commit comments

Comments
 (0)