diff --git a/src/main/java/io/pakland/mdas/githubstats/application/SaveAllPullRequests.java b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllPullRequests.java new file mode 100644 index 00000000..9bed50d4 --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllPullRequests.java @@ -0,0 +1,22 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.PullRequest; +import io.pakland.mdas.githubstats.domain.repository.PullRequestRepository; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +public class SaveAllPullRequests { + + public final PullRequestRepository pullRequestRepository; + + public SaveAllPullRequests(PullRequestRepository pullRequestRepository) { + this.pullRequestRepository = pullRequestRepository; + } + + @Transactional + public void execute(List pullRequests) { + pullRequestRepository.saveAll(pullRequests); + } + +} diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveAllPullRequestsTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllPullRequestsTest.java new file mode 100644 index 00000000..bc301bf7 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllPullRequestsTest.java @@ -0,0 +1,23 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.PullRequest; +import io.pakland.mdas.githubstats.domain.repository.PullRequestRepository; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; + +public class SaveAllPullRequestsTest { + + @Test + public void savingPullRequests_shouldCallRepositoryMethods() { + List pullRequests = new ArrayList<>(); + PullRequestRepository prRepositoryMock = Mockito.mock(PullRequestRepository.class); + + SaveAllPullRequests useCase = new SaveAllPullRequests(prRepositoryMock); + useCase.execute(pullRequests); + + Mockito.verify(prRepositoryMock, Mockito.times(1)).saveAll(Mockito.anyList()); + } +}