From f16b593d35d6e66dc7e1c8727d4eaa829d3973ed Mon Sep 17 00:00:00 2001 From: Sergi Domingo Date: Sun, 11 Dec 2022 22:38:56 +0100 Subject: [PATCH] feat: add `SaveAllPullRequests` use case --- .../application/SaveAllPullRequests.java | 22 ++++++++++++++++++ .../application/SaveAllPullRequestsTest.java | 23 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/main/java/io/pakland/mdas/githubstats/application/SaveAllPullRequests.java create mode 100644 src/test/java/io/pakland/mdas/githubstats/application/SaveAllPullRequestsTest.java 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()); + } +}