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