package de.towerdefence.server; import com.fasterxml.jackson.databind.ObjectMapper; import de.towerdefence.server.player.Player; import de.towerdefence.server.player.PlayerRepository; import de.towerdefence.server.player.PlayerService; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.servlet.MockMvc; import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; @SpringBootTest @AutoConfigureMockMvc(addFilters = false) @ActiveProfiles("test") public abstract class IntegrationTest { protected final static String baseUri = "/api/v1"; @Autowired protected MockMvc mvc; @Autowired protected ObjectMapper objectMapper; @Autowired protected PlayerRepository playerRepository; @Autowired protected PlayerService playerService; @BeforeEach void setUp() { playerRepository.deleteAll(); Map players = new HashMap<>(); players.put("Alex", "1234"); players.put("Zorro", "1234"); players.forEach((username, password) -> { Player player = new Player(); player.setUsername(username); try { playerService.setPassword(player, password); playerRepository.saveAndFlush(player); } catch (NoSuchAlgorithmException e) { System.err.println("Error setting password for player: " + username); } }); } @AfterEach void cleanUp() { playerRepository.deleteAll(); } }