diff --git a/pom.xml b/pom.xml index 32fdc14a..cda117e2 100644 --- a/pom.xml +++ b/pom.xml @@ -85,6 +85,12 @@ 4.10.0 test + + io.netty + netty-resolver-dns-native-macos + 4.1.85.Final + osx-aarch_64 + diff --git a/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java new file mode 100644 index 00000000..7d2364ba --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/application/SaveAllCommits.java @@ -0,0 +1,21 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.Commit; +import io.pakland.mdas.githubstats.domain.repository.CommitRepository; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +public class SaveAllCommits { + + private final CommitRepository commitRepository; + + SaveAllCommits(CommitRepository commitRepository) { + this.commitRepository = commitRepository; + } + + @Transactional + public void execute(List commits) { + commitRepository.saveAll(commits); + } +} diff --git a/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java new file mode 100644 index 00000000..3e2c22f8 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/application/SaveAllCommitsTest.java @@ -0,0 +1,26 @@ +package io.pakland.mdas.githubstats.application; + +import io.pakland.mdas.githubstats.domain.Commit; +import io.pakland.mdas.githubstats.domain.repository.CommitRepository; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.List; + +class SaveAllCommitsTest { + + @Test + public void shouldCallCommitRepositorySaveAll_whenExecute() { + + List commits = List.of(new Commit()); + CommitRepository commitRepositoryMock = Mockito.mock(CommitRepository.class); + Mockito.when(commitRepositoryMock.saveAll(Mockito.anyList())).thenReturn(commits); + SaveAllCommits saveAllCommits = new SaveAllCommits(commitRepositoryMock); + + saveAllCommits.execute(commits); + + Mockito.verify(commitRepositoryMock, Mockito.times(1)).saveAll(Mockito.anyList()); + + } + +} \ No newline at end of file