[Feature]: Testing für Player Username Uniqueness #3

Merged
snoweuph merged 1 commit from story/td-3-player-registration-testing into trunk 2025-02-11 13:22:18 +00:00
2 changed files with 41 additions and 2 deletions

View file

@ -1,6 +1,8 @@
package de.towerdefence.server; package de.towerdefence.server;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import de.towerdefence.server.player.PlayerRepository;
import de.towerdefence.server.player.PlayerService;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -20,15 +22,17 @@ public abstract class IntegrationTest {
protected MockMvc mvc; protected MockMvc mvc;
@Autowired @Autowired
protected ObjectMapper objectMapper; protected ObjectMapper objectMapper;
@Autowired
protected PlayerRepository playerRepository;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
//repository.deleteAll(); playerRepository.deleteAll();
} }
@AfterEach @AfterEach
void cleanUp() { void cleanUp() {
//repository.deleteAll(); playerRepository.deleteAll();
} }
} }

View file

@ -0,0 +1,35 @@
package de.towerdefence.server.server;
import de.towerdefence.server.IntegrationTest;
import de.towerdefence.server.oas.models.PlayerRegistrationData;
import org.junit.jupiter.api.Test;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.RequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
public class PlayerRegistrationTest extends IntegrationTest {
@Test
void playerUsernameIsUnique() throws Exception {
PlayerRegistrationData body = new PlayerRegistrationData();
body.setUsername("test");
body.setPassword("password");
this.mvc
.perform(getRequest(body))
.andExpect(status().isCreated());
this.mvc
.perform(getRequest(body))
.andExpect(status().isConflict());
}
private RequestBuilder getRequest(PlayerRegistrationData playerRegistrationData) throws Exception {
return MockMvcRequestBuilders
.post(baseUri + "/player/register")
.content(this.objectMapper.writeValueAsString(playerRegistrationData))
.contentType(MediaType.APPLICATION_JSON);
}
}