diff --git a/src/main/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeam.java b/src/main/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeam.java new file mode 100644 index 00000000..9d4a1585 --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeam.java @@ -0,0 +1,20 @@ +package io.pakland.mdas.githubstats.domain.service; + +import io.pakland.mdas.githubstats.domain.model.Repository; +import io.pakland.mdas.githubstats.domain.model.Team; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class GetRepositoriesByTeam { + + public GetRepositoriesByTeam() {} + + @Transactional + public List execute(Team team) { + return team.getRepositories(); + } + +} diff --git a/src/test/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeamTest.java b/src/test/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeamTest.java new file mode 100644 index 00000000..a3334384 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/domain/service/GetRepositoriesByTeamTest.java @@ -0,0 +1,27 @@ +package io.pakland.mdas.githubstats.domain.service; + +import io.pakland.mdas.githubstats.domain.model.Repository; +import io.pakland.mdas.githubstats.domain.model.Team; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class GetRepositoriesByTeamTest { + + @Test + public void givenTeam_shouldReturnListOfRepositories() { + Repository repository = new Repository(); + repository.setId(1L); + Team mockTeam = Mockito.mock(Team.class); + Mockito.when(mockTeam.getRepositories()).thenReturn(List.of(repository)); + + GetRepositoriesByTeam useCase = new GetRepositoriesByTeam(); + List repositories = useCase.execute(mockTeam); + + Mockito.verify(mockTeam, Mockito.times(1)).getRepositories(); + assertEquals(repositories.get(0).getId(), repository.getId()); + } +}