diff --git a/src/main/java/io/pakland/mdas/githubstats/application/SaveAllUsers.java b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllUsers.java new file mode 100644 index 00000000..356fadd5 --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllUsers.java @@ -0,0 +1,24 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.User; +import io.pakland.mdas.githubstats.domain.repository.UserRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class SaveAllUsers { + + public final UserRepository userRepository; + + public SaveAllUsers(UserRepository userRepository) { + this.userRepository = userRepository; + } + + @Transactional + public void execute(List users) { + userRepository.saveAll(users); + } + +} diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveAllUsersTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllUsersTest.java new file mode 100644 index 00000000..89968c87 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllUsersTest.java @@ -0,0 +1,24 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.User; +import io.pakland.mdas.githubstats.domain.repository.UserRepository; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.ArrayList; +import java.util.List; + +public class SaveAllUsersTest { + + @Test + public void savingUsers_shouldCallRepositoryMethods() { + List users = new ArrayList<>(); + UserRepository userRepositoryMock = Mockito.mock(UserRepository.class); + + SaveAllUsers useCase = new SaveAllUsers(userRepositoryMock); + useCase.execute(users); + + Mockito.verify(userRepositoryMock, Mockito.times(1)).saveAll(Mockito.anyList()); + } + +} diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveOrganizationTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveOrganizationTest.java index e0076afb..be14dad9 100644 --- a/src/test/java/io/pakland/mdas/githubstats/application/SaveOrganizationTest.java +++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveOrganizationTest.java @@ -22,7 +22,7 @@ public void shouldSaveOrganization_whenDoesNotExist() { } @Test - public void shouldNotSaveOrganization_wheDoesExist() { + public void shouldNotSaveOrganization_whenDoesExist() { Organization organization = new Organization(); organization.setId(1); OrganizationRepository orgRepositoryMock = Mockito.mock(OrganizationRepository.class);