diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java index b8452ca..6064f25 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java @@ -91,6 +91,17 @@ public class UserResource { .build(); } + @DeleteMapping("{id}") + public HttpResponse deleteUser(@PathVariable long id){ + userService.deleteUser(id); + return HttpResponse.builder() + .httpStatusCode(OK.value()) + .httpStatus(OK) + .reason(OK.getReasonPhrase()) + .message("User deleted successfully") + .build(); + } + private void authenticate(String username, String password) { Authentication auth = new UsernamePasswordAuthenticationToken(username, password); authenticationManager.authenticate(auth); diff --git a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceUnSecureTest.java b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceUnSecureTest.java index f736cdb..c1abb65 100644 --- a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceUnSecureTest.java +++ b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceUnSecureTest.java @@ -520,4 +520,37 @@ class UserResourceUnSecureTest extends BaseUserTest { .hasFieldOrPropertyWithValue("message", "Password reset successfully. Check your email for new password"); } } + + @Nested + class DeleteUserTests { + + @BeforeEach + void setUp() { + user = userRepository + .findAll() + .stream() + .findAny() + .orElseGet(() -> userRepository.save(createRandomUser())); + } + + @Test + void deleteUser() { + + //given + long id = user.getId(); + + //when + var responseEntity = restTemplate.exchange("/user/{id}", HttpMethod.DELETE, null, HttpResponse.class, id); + + //then + log.debug("Response Entity: {}", responseEntity); + assertThat(responseEntity.getStatusCode()).isEqualTo(OK); + assertThat(responseEntity.getBody()) + .isNotNull() + .hasNoNullFieldsOrProperties() + .hasFieldOrPropertyWithValue("httpStatus", OK) + .hasFieldOrPropertyWithValue("message", "User deleted successfully"); + } + } + } \ No newline at end of file