Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /