From fc211f7300643a296bdc0d22492f219f99094f86 Mon Sep 17 00:00:00 2001 From: Zihan Liu Date: Sun, 19 May 2024 13:52:31 +0200 Subject: [PATCH] Edited test for ending game --- .../ch/uzh/ifi/hase/soprafs24/service/GameService.java | 6 ++++-- .../soprafs24/service/GameServiceIntegrationTest.java | 7 ++++++- .../uzh/ifi/hase/soprafs24/service/GameServiceTest.java | 9 ++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/ch/uzh/ifi/hase/soprafs24/service/GameService.java b/src/main/java/ch/uzh/ifi/hase/soprafs24/service/GameService.java index e821a18..2accd61 100644 --- a/src/main/java/ch/uzh/ifi/hase/soprafs24/service/GameService.java +++ b/src/main/java/ch/uzh/ifi/hase/soprafs24/service/GameService.java @@ -346,8 +346,10 @@ public void endGame(Game game) { gameRepository.delete(game); System.out.println("Game ended"); - roomRepository.delete(roomRepository.findById(game.getRoomId()).get()); - socketService.broadcastLobbyInfo(); + if (roomRepository.findByRoomId(game.getRoomId()).isPresent()){ + roomRepository.delete(roomRepository.findByRoomId(game.getRoomId()).get()); + socketService.broadcastLobbyInfo(); + } } public void validateAnswer(Game game, Player player, String guess) { diff --git a/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceIntegrationTest.java b/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceIntegrationTest.java index b9bd0de..49243e9 100644 --- a/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceIntegrationTest.java +++ b/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceIntegrationTest.java @@ -161,14 +161,18 @@ public void testStartGame_success() throws IOException { game.setGameStatus(GameStatus.ingame); game.setRoomPlayersList(Arrays.asList("player1", "player2", "player3")); room.setRoomWordsList(Arrays.asList("word1", "word2", "word3")); + game.setRoomId("1"); User player1 = new User(); player1.setId("player1"); + player1.setInRoomId("1"); User player2 = new User(); player2.setId("player2"); + player2.setInRoomId("1"); User player3 = new User(); player3.setId("player3"); + player3.setInRoomId("1"); Player p1 = new Player(player1); @@ -190,7 +194,8 @@ public void testStartGame_success() throws IOException { when(userRepository.findById("player1")).thenReturn(Optional.of(player1)); when(userRepository.findById("player2")).thenReturn(Optional.of(player2)); when(userRepository.findById("player3")).thenReturn(Optional.of(player3)); - when(roomRepository.findById("1")).thenReturn(Optional.of(room)); + when(roomRepository.findByRoomId("1")).thenReturn(Optional.of(room)); + doNothing().when(gameRepository).delete(game); // Execute the method under test gameService.startGame(room); diff --git a/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceTest.java b/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceTest.java index 41e290a..5d80d58 100644 --- a/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceTest.java +++ b/src/test/java/ch/uzh/ifi/hase/soprafs24/service/GameServiceTest.java @@ -11,11 +11,13 @@ import java.io.IOException; import java.util.Arrays; +import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.atLeastOnce; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -460,14 +462,18 @@ public void testStartGame_success() throws IOException { Game game = new Game(room); game.setGameStatus(GameStatus.ingame); game.setRoomPlayersList(Arrays.asList("player1", "player2", "player3")); + game.setRoomId("1"); User player1 = new User(); player1.setId("player1"); + player1.setInRoomId("1"); User player2 = new User(); player2.setId("player2"); + player2.setInRoomId("1"); User player3 = new User(); player3.setId("player3"); + player3.setInRoomId("1"); Player p1 = new Player(player1); @@ -488,7 +494,8 @@ public void testStartGame_success() throws IOException { when(userRepository.findById("player1")).thenReturn(Optional.of(player1)); when(userRepository.findById("player2")).thenReturn(Optional.of(player2)); when(userRepository.findById("player3")).thenReturn(Optional.of(player3)); - when(roomRepository.findById("1")).thenReturn(Optional.of(room)); + when(roomRepository.findByRoomId("1")).thenReturn(Optional.of(room)); + doNothing().when(gameRepository).delete(game); // Execute the method under test gameService.startGame(room);