From ad2a9ca3e38ccd8f19b8f2f83ba84ff8821b5a24 Mon Sep 17 00:00:00 2001
From: Erik Moravec <xmoravec@fi.muni.cz>
Date: Wed, 28 Apr 2021 18:07:48 +0200
Subject: [PATCH] test: added tests for create and findGame

---
 .../services/GameServiceImplTest.java         | 39 +++++++++++++++++--
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImplTest.java b/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImplTest.java
index 1e299b7..c28c6de 100644
--- a/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImplTest.java
+++ b/src/test/java/cz/muni/fi/pa165/icehockeymanager/services/GameServiceImplTest.java
@@ -16,8 +16,10 @@ import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Optional;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 @ExtendWith(SpringExtension.class)
@@ -50,16 +52,45 @@ class GameServiceImplTest {
         assertThat(gameService.getAllGames()).containsExactlyElementsOf(expected);
     }
 
-    private Team buildTeam(
-            Long id,
-            String name
-    ) {
+    @Test
+    public void createGame() {
+        Game game = buildGame();
+        gameService.createGame(game);
+        verify(gameDao).create(game);
+    }
+
+    @Test
+    public void findNonexistentGame() {
+        when(gameDao.read(1L)).thenReturn(Optional.empty());
+        assertThat(gameService.findGame(1L)).isEmpty();
+        verify(gameDao).read(1L);
+    }
+
+    @Test
+    public void findExistingGame() {
+        var expected = Optional.of(buildGame());
+        when(gameDao.read(1L)).thenReturn(expected);
+        assertThat(gameService.findGame(1L)).isEqualTo(expected);
+        verify(gameDao).read(1L);
+    }
+
+    private Team buildTeam(String name) {
+        return buildTeam(1L, name);
+    }
+
+    private Team buildTeam(long id, String name) {
         var team = new Team();
         team.setId(id);
         team.setName(name);
         return team;
     }
 
+    private Game buildGame() {
+        var game = new Game();
+        game.setId(1L);
+        return game;
+    }
+
     private Game buildGame(
             Long id,
             Team homeTeam,
-- 
GitLab