diff --git a/src/main/java/io/pakland/mdas/githubstats/application/SaveAllTeams.java b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllTeams.java new file mode 100644 index 00000000..0af02985 --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllTeams.java @@ -0,0 +1,24 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.Team; +import io.pakland.mdas.githubstats.domain.repository.TeamRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class SaveAllTeams { + + public final TeamRepository teamRepository; + + public SaveAllTeams(TeamRepository teamRepository) { + this.teamRepository = teamRepository; + } + + @Transactional + public void execute(List teams) { + teamRepository.saveAll(teams); + } + +} diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveAllTeamsTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllTeamsTest.java new file mode 100644 index 00000000..4da5d414 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllTeamsTest.java @@ -0,0 +1,23 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.Team; +import io.pakland.mdas.githubstats.domain.repository.TeamRepository; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; + +public class SaveAllTeamsTest { + + @Test + public void savingTeams_shouldCallRepositoryMethods() { + List teams = new ArrayList<>(); + TeamRepository teamRepositoryMock = Mockito.mock(TeamRepository.class); + + SaveAllTeams useCase = new SaveAllTeams(teamRepositoryMock); + useCase.execute(teams); + + Mockito.verify(teamRepositoryMock, Mockito.times(1)).saveAll(Mockito.anyList()); + } +}