@Test(expected = AtleastOneRoleCodeException.class) public void test_should_validate_user_on_update() { org.egov.user.domain.model.User domainUser = User.builder().uuid("xyz").build(); User user = User.builder().build(); Mockito.doNothing().when(userRepository).update(any(org.egov.user.domain.model.User.class), any(org.egov.user .domain .model.User .class)); when(userRepository.findAll(any(UserSearchCriteria.class))).thenReturn(Collections.singletonList(user)); userService.updateWithoutOtpValidation( domainUser); verify(domainUser).validateUserModification(); }
public User updateWithoutOtpValidation(final User user) { final User existingUser = getUserByUuid(user.getUuid()); user.setTenantId(getStateLevelTenantForCitizen(user.getTenantId(), user.getType())); validateUserRoles(user); user.validateUserModification(); user.setPassword(encryptPwd(user.getPassword())); userRepository.update(user, existingUser); if(user.getAccountLocked()!=null && !user.getAccountLocked() && existingUser.getAccountLocked()) resetFailedLoginAttempts(user); return getUserByUuid(user.getUuid()); }
UserService { public User updateWithoutOtpValidation(final User user) { final User existingUser = getUserByUuid(user.getUuid()); user.setTenantId(getStateLevelTenantForCitizen(user.getTenantId(), user.getType())); validateUserRoles(user); user.validateUserModification(); user.setPassword(encryptPwd(user.getPassword())); userRepository.update(user, existingUser); if(user.getAccountLocked()!=null && !user.getAccountLocked() && existingUser.getAccountLocked()) resetFailedLoginAttempts(user); return getUserByUuid(user.getUuid()); } }
UserService { public User updateWithoutOtpValidation(final User user) { final User existingUser = getUserByUuid(user.getUuid()); user.setTenantId(getStateLevelTenantForCitizen(user.getTenantId(), user.getType())); validateUserRoles(user); user.validateUserModification(); user.setPassword(encryptPwd(user.getPassword())); userRepository.update(user, existingUser); if(user.getAccountLocked()!=null && !user.getAccountLocked() && existingUser.getAccountLocked()) resetFailedLoginAttempts(user); return getUserByUuid(user.getUuid()); } UserService(UserRepository userRepository, OtpRepository otpRepository, FileStoreRepository fileRepository,
                       PasswordEncoder passwordEncoder, TokenStore tokenStore,
                       @Value("${default.password.expiry.in.days}") int defaultPasswordExpiryInDays,
                       @Value("${citizen.login.password.otp.enabled}") boolean isCitizenLoginOtpBased,
                       @Value("${employee.login.password.otp.enabled}") boolean isEmployeeLoginOtpBased); }
UserService { public User updateWithoutOtpValidation(final User user) { final User existingUser = getUserByUuid(user.getUuid()); user.setTenantId(getStateLevelTenantForCitizen(user.getTenantId(), user.getType())); validateUserRoles(user); user.validateUserModification(); user.setPassword(encryptPwd(user.getPassword())); userRepository.update(user, existingUser); if(user.getAccountLocked()!=null && !user.getAccountLocked() && existingUser.getAccountLocked()) resetFailedLoginAttempts(user); return getUserByUuid(user.getUuid()); } UserService(UserRepository userRepository, OtpRepository otpRepository, FileStoreRepository fileRepository,
                       PasswordEncoder passwordEncoder, TokenStore tokenStore,
                       @Value("${default.password.expiry.in.days}") int defaultPasswordExpiryInDays,
                       @Value("${citizen.login.password.otp.enabled}") boolean isCitizenLoginOtpBased,
                       @Value("${employee.login.password.otp.enabled}") boolean isEmployeeLoginOtpBased); User getUniqueUser(String userName, String tenantId, UserType userType); User getUserByUuid(String uuid); List<org.egov.user.domain.model.User> searchUsers(UserSearchCriteria searchCriteria,
                                                             boolean isInterServiceCall); User createUser(User user); User createCitizen(User user); Object registerWithLogin(User user); Boolean validateOtp(User user); User updateWithoutOtpValidation(final User user); void removeTokensByUser(User user); User partialUpdate(final User user); void updatePasswordForLoggedInUser(LoggedInUserUpdatePasswordRequest updatePasswordRequest); void updatePasswordForNonLoggedInUser(NonLoggedInUserUpdatePasswordRequest request); void resetFailedLoginAttempts(User user); boolean isAccountUnlockAble(User user); void handleFailedLogin(User user, String ipAddress); }
UserService { public User updateWithoutOtpValidation(final User user) { final User existingUser = getUserByUuid(user.getUuid()); user.setTenantId(getStateLevelTenantForCitizen(user.getTenantId(), user.getType())); validateUserRoles(user); user.validateUserModification(); user.setPassword(encryptPwd(user.getPassword())); userRepository.update(user, existingUser); if(user.getAccountLocked()!=null && !user.getAccountLocked() && existingUser.getAccountLocked()) resetFailedLoginAttempts(user); return getUserByUuid(user.getUuid()); } UserService(UserRepository userRepository, OtpRepository otpRepository, FileStoreRepository fileRepository,
                       PasswordEncoder passwordEncoder, TokenStore tokenStore,
                       @Value("${default.password.expiry.in.days}") int defaultPasswordExpiryInDays,
                       @Value("${citizen.login.password.otp.enabled}") boolean isCitizenLoginOtpBased,
                       @Value("${employee.login.password.otp.enabled}") boolean isEmployeeLoginOtpBased); User getUniqueUser(String userName, String tenantId, UserType userType); User getUserByUuid(String uuid); List<org.egov.user.domain.model.User> searchUsers(UserSearchCriteria searchCriteria,
                                                             boolean isInterServiceCall); User createUser(User user); User createCitizen(User user); Object registerWithLogin(User user); Boolean validateOtp(User user); User updateWithoutOtpValidation(final User user); void removeTokensByUser(User user); User partialUpdate(final User user); void updatePasswordForLoggedInUser(LoggedInUserUpdatePasswordRequest updatePasswordRequest); void updatePasswordForNonLoggedInUser(NonLoggedInUserUpdatePasswordRequest request); void resetFailedLoginAttempts(User user); boolean isAccountUnlockAble(User user); void handleFailedLogin(User user, String ipAddress);  }