From 08cdfa25a5a781673c78f7ec33c23d03164e197a Mon Sep 17 00:00:00 2001 From: Dominik Mizyn Date: Mon, 26 Aug 2019 15:51:40 +0200 Subject: UserController tests up UserController tests up Issue-ID: PORTAL-710 Signed-off-by: Dominik Mizyn Change-Id: Ic7cd8926d7daa5dcbf746d1315d3cf5123f094ac --- .../org/onap/portal/controller/UserController.java | 118 +++++++++++---------- .../org/onap/portal/domain/dto/ProfileDetail.java | 33 +++++- .../org/onap/portal/validation/DataValidator.java | 6 ++ 3 files changed, 100 insertions(+), 57 deletions(-) (limited to 'portal-BE/src/main') diff --git a/portal-BE/src/main/java/org/onap/portal/controller/UserController.java b/portal-BE/src/main/java/org/onap/portal/controller/UserController.java index a679192a..d514dfae 100644 --- a/portal-BE/src/main/java/org/onap/portal/controller/UserController.java +++ b/portal-BE/src/main/java/org/onap/portal/controller/UserController.java @@ -41,80 +41,86 @@ package org.onap.portal.controller; import java.security.Principal; +import lombok.NoArgsConstructor; import org.onap.portal.domain.db.fn.FnUser; import org.onap.portal.domain.dto.PortalRestResponse; import org.onap.portal.domain.dto.PortalRestStatusEnum; import org.onap.portal.domain.dto.ProfileDetail; import org.onap.portal.service.fn.FnUserService; +import org.onap.portal.validation.DataValidator; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.onboarding.util.CipherUtil; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.core.session.SessionRegistry; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController +@Controller public class UserController { - private static final String HIDDEN_DEFAULT_PASSWORD = "*****"; - private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserController.class); + private static final String HIDDEN_DEFAULT_PASSWORD = "*****"; + private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserController.class); - private final FnUserService userService; + private final FnUserService userService; + private final DataValidator dataValidator; - @Autowired - public UserController(FnUserService userService) { - this.userService = userService; - } + @Autowired + public UserController(final FnUserService userService, + final DataValidator dataValidator) { + this.userService = userService; + this.dataValidator = dataValidator; + } - @RequestMapping(value = { "/portalApi/loggedinUser" }, method = RequestMethod.GET, produces = "application/json") - public PortalRestResponse getLoggedinUser(Principal principal) { - PortalRestResponse portalRestResponse = null; - try { - FnUser user = userService.loadUserByUsername(principal.getName()); - ProfileDetail profileDetail = new ProfileDetail(user.getFirstName(), user.getLastName(), - user.getMiddleName(), user.getEmail(), user.getLoginId(), HIDDEN_DEFAULT_PASSWORD); - portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", - profileDetail); - } catch (Exception e) { - portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), - null); - logger.error(EELFLoggerDelegate.errorLogger, "getLoggedinUser failed", e); - } - return portalRestResponse; - } + @RequestMapping(value = {"/portalApi/loggedinUser"}, method = RequestMethod.GET, produces = "application/json") + public PortalRestResponse getLoggedinUser(Principal principal) { + PortalRestResponse portalRestResponse = null; + try { + FnUser user = userService.loadUserByUsername(principal.getName()); + ProfileDetail profileDetail = new ProfileDetail(user.getFirstName(), user.getLastName(), + user.getMiddleName(), user.getEmail(), user.getLoginId(), HIDDEN_DEFAULT_PASSWORD); + portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", + profileDetail); + } catch (Exception e) { + portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.getMessage(), + null); + logger.error(EELFLoggerDelegate.errorLogger, "getLoggedinUser failed", e); + } + return portalRestResponse; + } - @RequestMapping(value = { - "/portalApi/modifyLoggedinUser" }, method = RequestMethod.PUT, produces = "application/json") - public PortalRestResponse modifyLoggedinUser(Principal principal, - @RequestBody ProfileDetail profileDetail) { - PortalRestResponse portalRestResponse = null; - try { - String errorMsg = ""; - if (profileDetail.getFirstName().equals("") || profileDetail.getLastName().equals("") - || profileDetail.getEmail().equals("") || profileDetail.getLoginId().equals("") - || profileDetail.getLoginPassword().equals("")) { - errorMsg = "Required field(s) is missing"; - portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, errorMsg, null); - logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg); - } else { - FnUser user = userService.loadUserByUsername(principal.getName()); - user.setFirstName(profileDetail.getFirstName()); - user.setLastName(profileDetail.getLastName()); - user.setEmail(profileDetail.getEmail()); - user.setMiddleName(profileDetail.getMiddleName()); - user.setLoginId(profileDetail.getLoginId()); - if (!HIDDEN_DEFAULT_PASSWORD.equals(profileDetail.getLoginPassword())){ - user.setLoginPwd(CipherUtil.encryptPKC(profileDetail.getLoginPassword())); - } - userService.saveFnUser(principal, user); - // Update user info in the session - portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", null); - } - } catch (Exception e) { - portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); - logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", e); - } - return portalRestResponse; - } + @RequestMapping(value = { + "/portalApi/modifyLoggedinUser"}, method = RequestMethod.PUT, produces = "application/json") + public PortalRestResponse modifyLoggedinUser(Principal principal, + @RequestBody ProfileDetail profileDetail) { + PortalRestResponse portalRestResponse = null; + try { + String errorMsg = ""; + if (!dataValidator.isValid(profileDetail)) { + errorMsg = "Required field(s) is missing"; + portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, dataValidator.getConstraintViolationsString(profileDetail), null); + logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg); + } else { + FnUser user = userService.loadUserByUsername(principal.getName()); + user.setFirstName(profileDetail.getFirstName()); + user.setLastName(profileDetail.getLastName()); + user.setEmail(profileDetail.getEmail()); + user.setMiddleName(profileDetail.getMiddleName()); + user.setLoginId(profileDetail.getLoginId()); + if (!HIDDEN_DEFAULT_PASSWORD.equals(profileDetail.getLoginPassword())) { + user.setLoginPwd(CipherUtil.encryptPKC(profileDetail.getLoginPassword())); + } + userService.saveFnUser(principal, user); + // Update user info in the session + portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.OK, "success", null); + } + } catch (Exception e) { + portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, e.toString(), null); + logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", e); + } + return portalRestResponse; + } } diff --git a/portal-BE/src/main/java/org/onap/portal/domain/dto/ProfileDetail.java b/portal-BE/src/main/java/org/onap/portal/domain/dto/ProfileDetail.java index e43c14d6..aec69a71 100644 --- a/portal-BE/src/main/java/org/onap/portal/domain/dto/ProfileDetail.java +++ b/portal-BE/src/main/java/org/onap/portal/domain/dto/ProfileDetail.java @@ -38,22 +38,53 @@ package org.onap.portal.domain.dto; +import java.util.Objects; +import javax.validation.constraints.Email; +import javax.validation.constraints.NotBlank; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.ToString; @Setter @Getter @NoArgsConstructor @AllArgsConstructor +@ToString public class ProfileDetail { - + @NotBlank(message = "firstName must not be blank") private String firstName; + @NotBlank(message = "lastName must not be blank") private String lastName; private String middleName; + @Email + @NotBlank(message = "email must not be blank") private String email; + @NotBlank(message = "loginId must not be blank") private String loginId; + @NotBlank(message = "loginPassword must not be blank") private String loginPassword; + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof ProfileDetail)) { + return false; + } + ProfileDetail that = (ProfileDetail) o; + return Objects.equals(firstName, that.firstName) && + Objects.equals(lastName, that.lastName) && + Objects.equals(middleName, that.middleName) && + Objects.equals(email, that.email) && + Objects.equals(loginId, that.loginId) && + Objects.equals(loginPassword, that.loginPassword); + } + + @Override + public int hashCode() { + return Objects.hash(firstName, lastName, middleName, email, loginId, loginPassword); + } } diff --git a/portal-BE/src/main/java/org/onap/portal/validation/DataValidator.java b/portal-BE/src/main/java/org/onap/portal/validation/DataValidator.java index ad0a9f18..80ad9b70 100644 --- a/portal-BE/src/main/java/org/onap/portal/validation/DataValidator.java +++ b/portal-BE/src/main/java/org/onap/portal/validation/DataValidator.java @@ -41,10 +41,12 @@ package org.onap.portal.validation; import java.util.Set; +import java.util.stream.Collectors; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; +import org.apache.poi.ss.formula.functions.T; import org.springframework.stereotype.Service; @Service @@ -66,6 +68,10 @@ public class DataValidator { return validator.validate(classToValid); } + public String getConstraintViolationsString(E classToValid){ + return getConstraintViolations(classToValid).stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(", ")); + } + public boolean isValid(E classToValid) { Set> constraintViolations = getConstraintViolations(classToValid); return constraintViolations.isEmpty(); -- cgit 1.2.3-korg