diff --git a/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/PlayerServiceImplTest.java b/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/PlayerServiceImplTest.java index e49c6814d930d331978b654cbb360fea99c7d884..f4fdabf282d9ccf417b3a236ee3adbeef97c87f7 100644 --- a/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/PlayerServiceImplTest.java +++ b/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/PlayerServiceImplTest.java @@ -3,6 +3,8 @@ package cz.muni.fi.pa165.icehockeymanager.services; import cz.muni.fi.pa165.icehockeymanager.config.ApplicationConfig; import cz.muni.fi.pa165.icehockeymanager.dao.PlayerDao; import cz.muni.fi.pa165.icehockeymanager.dto.PlayerDTO; +import cz.muni.fi.pa165.icehockeymanager.exceptions.PlayerNotInTeamException; +import cz.muni.fi.pa165.icehockeymanager.exceptions.UnknownPlayerException; import cz.muni.fi.pa165.icehockeymanager.model.Player; import cz.muni.fi.pa165.icehockeymanager.model.Team; import org.junit.jupiter.api.Test; @@ -17,6 +19,7 @@ import java.util.Arrays; import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.mockito.Mockito.*; import static org.mockito.Mockito.mock; @@ -82,6 +85,35 @@ class PlayerServiceImplTest { } + @Test + public void removeTeamFromPlayer() { + Player player = buildPlayer(1L, "Jaromir Jagr"); + Team team = buildTeam(1L, "Florida Panthers"); + player.setTeam(team); + playerService.removeTeamFromPlayer(player, team); + assertThat(player.getTeam()).isEmpty(); + verify(playerDao).update(player); + } + + @Test + public void removeTeamFromPlayerTeamIsNull() { + Player player = buildPlayer(1L, "Jaromir Jagr"); + assertThatExceptionOfType(PlayerNotInTeamException.class).isThrownBy( + () -> playerService.removeTeamFromPlayer(player, null) + ); + } + + @Test + public void removeTeamFromPlayerTeamIsDifferent() { + Player player = buildPlayer(1L, "Jaromir Jagr"); + Team team = buildTeam(1L, "Florida Panthers"); + Team team2 = buildTeam(2L, "Colorado Avalanches"); + player.setTeam(team); + assertThatExceptionOfType(PlayerNotInTeamException.class).isThrownBy( + () -> playerService.removeTeamFromPlayer(player, team2) + ); + } + public Team buildTeamMock(Long id, String name) { var team = mock(Team.class);