Skip to content

Commit 3799777

Browse files
Merge pull request #203 from MihaiCristianCondrea/codex/add-unit-tests-for-aboutviewmodel
Add unit tests for About screen view model and use cases
2 parents 7d31fdf + 58dd02e commit 3799777

File tree

3 files changed

+90
-0
lines changed

3 files changed

+90
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.d4rk.androidtutorials.java.domain.about;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.verify;
6+
import static org.mockito.Mockito.when;
7+
8+
import com.d4rk.androidtutorials.java.data.repository.AboutRepository;
9+
10+
import org.junit.Test;
11+
12+
public class GetCurrentYearUseCaseTest {
13+
14+
@Test
15+
public void invokeReturnsRepositoryCurrentYear() {
16+
AboutRepository repository = mock(AboutRepository.class);
17+
when(repository.getCurrentYear()).thenReturn("2030");
18+
GetCurrentYearUseCase useCase = new GetCurrentYearUseCase(repository);
19+
20+
String result = useCase.invoke();
21+
22+
assertEquals("2030", result);
23+
verify(repository).getCurrentYear();
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.d4rk.androidtutorials.java.domain.about;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.verify;
6+
import static org.mockito.Mockito.when;
7+
8+
import com.d4rk.androidtutorials.java.data.repository.AboutRepository;
9+
10+
import org.junit.Test;
11+
12+
public class GetVersionStringUseCaseTest {
13+
14+
@Test
15+
public void invokeReturnsRepositoryVersionString() {
16+
AboutRepository repository = mock(AboutRepository.class);
17+
when(repository.getVersionString()).thenReturn("v9.9.9");
18+
GetVersionStringUseCase useCase = new GetVersionStringUseCase(repository);
19+
20+
String result = useCase.invoke();
21+
22+
assertEquals("v9.9.9", result);
23+
verify(repository).getVersionString();
24+
}
25+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.d4rk.androidtutorials.java.ui.screens.about;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.verify;
6+
import static org.mockito.Mockito.when;
7+
8+
import com.d4rk.androidtutorials.java.domain.about.GetCurrentYearUseCase;
9+
import com.d4rk.androidtutorials.java.domain.about.GetVersionStringUseCase;
10+
11+
import org.junit.Test;
12+
13+
public class AboutViewModelTest {
14+
15+
@Test
16+
public void getVersionStringDelegatesToUseCase() {
17+
GetVersionStringUseCase versionUseCase = mock(GetVersionStringUseCase.class);
18+
GetCurrentYearUseCase currentYearUseCase = mock(GetCurrentYearUseCase.class);
19+
when(versionUseCase.invoke()).thenReturn("v1.2.3 (45)");
20+
AboutViewModel viewModel = new AboutViewModel(versionUseCase, currentYearUseCase);
21+
22+
String result = viewModel.getVersionString();
23+
24+
assertEquals("v1.2.3 (45)", result);
25+
verify(versionUseCase).invoke();
26+
}
27+
28+
@Test
29+
public void getCurrentYearDelegatesToUseCase() {
30+
GetVersionStringUseCase versionUseCase = mock(GetVersionStringUseCase.class);
31+
GetCurrentYearUseCase currentYearUseCase = mock(GetCurrentYearUseCase.class);
32+
when(currentYearUseCase.invoke()).thenReturn("2024");
33+
AboutViewModel viewModel = new AboutViewModel(versionUseCase, currentYearUseCase);
34+
35+
String result = viewModel.getCurrentYear();
36+
37+
assertEquals("2024", result);
38+
verify(currentYearUseCase).invoke();
39+
}
40+
}

0 commit comments

Comments
 (0)