diff --git a/src/main/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganization.java b/src/main/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganization.java new file mode 100644 index 00000000..45c09b41 --- /dev/null +++ b/src/main/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganization.java @@ -0,0 +1,18 @@ +package io.pakland.mdas.githubstats.domain.service; + +import io.pakland.mdas.githubstats.domain.model.Organization; +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 GetTeamsFromOrganization { + public GetTeamsFromOrganization() { } + + @Transactional + public List execute(Organization org) { + return org.getTeams(); + } +} diff --git a/src/test/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganizationTest.java b/src/test/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganizationTest.java new file mode 100644 index 00000000..63da3484 --- /dev/null +++ b/src/test/java/io/pakland/mdas/githubstats/domain/service/GetTeamsFromOrganizationTest.java @@ -0,0 +1,26 @@ +package io.pakland.mdas.githubstats.domain.service; + +import io.pakland.mdas.githubstats.domain.model.Organization; +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 GetTeamsFromOrganizationTest { + @Test + public void givenOrganization_shouldReturnListOfTeams() { + Team team = new Team(); + team.setId(1L); + Organization organizationMock = Mockito.mock(Organization.class); + Mockito.when(organizationMock.getTeams()).thenReturn(List.of(team)); + + GetTeamsFromOrganization useCase = new GetTeamsFromOrganization(); + List teams = useCase.execute(organizationMock); + + Mockito.verify(organizationMock, Mockito.times(1)).getTeams(); + assertEquals(teams.get(0).getId(), team.getId()); + } +}