From c399d1cf8def20bf5d781be46b3c7f3729db9198 Mon Sep 17 00:00:00 2001 From: Art Date: Thu, 9 Sep 2021 23:17:11 +0300 Subject: [PATCH] 78.4 Reset Password (#9) --- .../backend/controller/UserResource.java | 11 +++++++ .../controller/UserResourceUnSecureTest.java | 31 +++++++++++++++++++ 2 files changed, 42 insertions(+) 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 70bcd67..b8452ca 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 @@ -80,6 +80,17 @@ public class UserResource { return userService.findAll(); } + @PostMapping("/resetPassword/{email}") + public HttpResponse resetPassword(@PathVariable String email) { + userService.resetPassword(email); + return HttpResponse.builder() + .httpStatusCode(OK.value()) + .httpStatus(OK) + .reason(OK.getReasonPhrase()) + .message("Password reset successfully. Check your email for new password") + .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 db31280..f736cdb 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 @@ -489,4 +489,35 @@ class UserResourceUnSecureTest extends BaseUserTest { } } + @Nested + class ResetPasswordTests { + + @BeforeEach + void setUp() { + user = userRepository + .findAll() + .stream() + .findAny() + .orElseGet(() -> userRepository.save(createRandomUser())); + } + + @Test + void resetPassword() { + + //given + String email = user.getEmail(); + + //when + var responseEntity = restTemplate.exchange("/user/resetPassword/{email}", HttpMethod.POST, null, HttpResponse.class, email); + + //then + log.debug("Response Entity: {}", responseEntity); + assertThat(responseEntity.getStatusCode()).isEqualTo(OK); + assertThat(responseEntity.getBody()) + .isNotNull() + .hasNoNullFieldsOrProperties() + .hasFieldOrPropertyWithValue("httpStatus", OK) + .hasFieldOrPropertyWithValue("message", "Password reset successfully. Check your email for new password"); + } + } } \ No newline at end of file