diff --git a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/UserController.java b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/UserController.java index 31cfd86e0d4f9b7ab652143468c7a61666609e00..d0c6429b245ad650d6e5fe747d9db2fb48e88681 100644 --- a/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/UserController.java +++ b/application/module-language-school/src/main/java/org/fuseri/modulelanguageschool/user/UserController.java @@ -62,7 +62,7 @@ public class UserController { } @PostMapping("/login") - public String login(@RequestBody UserLoginDto dto) { + public String login(@Valid @RequestBody UserLoginDto dto) { return String.format("User %s has spawned", dto.getUsername()); } diff --git a/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserControllerTest.java b/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserControllerTest.java index 0c6698043b0d4b9a5d635cd521dcd34657520c83..f1cd0beae361e0bfd37aea276431386dbbdc72ce 100644 --- a/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserControllerTest.java +++ b/application/module-language-school/src/test/java/org/fuseri/modulelanguageschool/user/UserControllerTest.java @@ -90,6 +90,14 @@ class UserControllerTest { return Stream.concat(invalidUsers, invalidAddressUsers.stream()); } + private static Stream<UserLoginDto> invalidLoginDtoStream() { + return Stream.of( + new UserLoginDto("", "skkckdvssg4v83sfsDRHCVVB"), + new UserLoginDto("xnovak", ""), + new UserLoginDto(null, "skkckdvssg4v83sfsDRHCVVB"), + new UserLoginDto("xnovak", null)); + } + @Test void create() throws Exception { mockMvc.perform(post("/users") @@ -172,6 +180,15 @@ class UserControllerTest { .andExpect(status().isOk()); } + @ParameterizedTest + @MethodSource("invalidLoginDtoStream") + void loginInvalidDto(UserLoginDto loginDto) throws Exception { + mockMvc.perform(post("/users/login") + .content(asJsonString(loginDto)) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().is4xxClientError()); + } + private static String asJsonString(final Object obj) throws JsonProcessingException { return new ObjectMapper().writeValueAsString(obj); }