From 9af650bed3e1c88a9398311867ad17350f97a8f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A1n=20Dovjak?= <xdovjak@fi.muni.cz>
Date: Wed, 28 Apr 2021 16:33:03 +0200
Subject: [PATCH] test: extending PlayerServiceImplTest

---
 .../services/PlayerServiceImplTest.java       | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)

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 e49c681..f4fdabf 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);
-- 
GitLab