Skip to content

Commit c5f9060

Browse files
Merge pull request #173 from MihaiCristianCondrea/codex/add-test-classes-for-use-cases
test: add home domain use case tests
2 parents afbd642 + 379f144 commit c5f9060

File tree

4 files changed

+119
-0
lines changed

4 files changed

+119
-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.home;
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.HomeRepository;
9+
10+
import org.junit.Test;
11+
12+
public class GetAppPlayStoreUrlUseCaseTest {
13+
14+
@Test
15+
public void invokeReturnsAppUrl() {
16+
HomeRepository repository = mock(HomeRepository.class);
17+
when(repository.getAppPlayStoreUrl("pkg")).thenReturn("url");
18+
GetAppPlayStoreUrlUseCase useCase = new GetAppPlayStoreUrlUseCase(repository);
19+
20+
String result = useCase.invoke("pkg");
21+
22+
assertEquals("url", result);
23+
verify(repository).getAppPlayStoreUrl("pkg");
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.home;
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.HomeRepository;
9+
10+
import org.junit.Test;
11+
12+
public class GetDailyTipUseCaseTest {
13+
14+
@Test
15+
public void invokeReturnsDailyTip() {
16+
HomeRepository repository = mock(HomeRepository.class);
17+
when(repository.dailyTip()).thenReturn("tip");
18+
GetDailyTipUseCase useCase = new GetDailyTipUseCase(repository);
19+
20+
String result = useCase.invoke();
21+
22+
assertEquals("tip", result);
23+
verify(repository).dailyTip();
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.home;
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.HomeRepository;
9+
10+
import org.junit.Test;
11+
12+
public class GetPlayStoreUrlUseCaseTest {
13+
14+
@Test
15+
public void invokeReturnsUrl() {
16+
HomeRepository repository = mock(HomeRepository.class);
17+
when(repository.getPlayStoreUrl()).thenReturn("url");
18+
GetPlayStoreUrlUseCase useCase = new GetPlayStoreUrlUseCase(repository);
19+
20+
String result = useCase.invoke();
21+
22+
assertEquals("url", result);
23+
verify(repository).getPlayStoreUrl();
24+
}
25+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.d4rk.androidtutorials.java.domain.home;
2+
3+
import static org.mockito.Mockito.any;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.verify;
6+
7+
import com.d4rk.androidtutorials.java.data.model.PromotedApp;
8+
import com.d4rk.androidtutorials.java.data.repository.HomeRepository;
9+
10+
import org.junit.Test;
11+
import org.mockito.ArgumentCaptor;
12+
13+
import java.util.List;
14+
15+
public class GetPromotedAppsUseCaseTest {
16+
17+
@Test
18+
public void invokeCallsRepository() {
19+
HomeRepository repository = mock(HomeRepository.class);
20+
GetPromotedAppsUseCase useCase = new GetPromotedAppsUseCase(repository);
21+
22+
useCase.invoke(apps -> {});
23+
24+
verify(repository).fetchPromotedApps(any());
25+
}
26+
27+
@Test
28+
public void invokeReturnsAppsThroughCallback() {
29+
HomeRepository repository = mock(HomeRepository.class);
30+
GetPromotedAppsUseCase useCase = new GetPromotedAppsUseCase(repository);
31+
GetPromotedAppsUseCase.Callback callback = mock(GetPromotedAppsUseCase.Callback.class);
32+
33+
useCase.invoke(callback);
34+
35+
ArgumentCaptor<HomeRepository.PromotedAppsCallback> captor =
36+
ArgumentCaptor.forClass(HomeRepository.PromotedAppsCallback.class);
37+
verify(repository).fetchPromotedApps(captor.capture());
38+
39+
List<PromotedApp> apps = List.of(new PromotedApp("App", "pkg", "icon"));
40+
captor.getValue().onResult(apps);
41+
42+
verify(callback).onResult(apps);
43+
}
44+
}

0 commit comments

Comments
 (0)