From 5a9b19ee51e71a3a62b393858c9635d7ab37fbd9 Mon Sep 17 00:00:00 2001 From: Roman <1992roman@list.ru> Date: Sun, 5 Jul 2020 18:13:41 +0300 Subject: [PATCH] tests done --- .../com/epam/izh/rd/online/entity/User.java | 0 .../rd/online/repository/IUserRepository.java | 0 .../rd/online/repository/UserRepository.java | 0 .../online/service/AuthenticationService.java | 15 +++++--- .../rd/online/service/CurrentUserManager.java | 3 +- .../service/IAuthenticationService.java | 4 ++- .../izh/rd/online/service/IUserService.java | 7 ++-- .../izh/rd/online/service/UserService.java | 36 +++++++++++++------ 8 files changed, 46 insertions(+), 19 deletions(-) mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/entity/User.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/repository/UserRepository.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/service/CurrentUserManager.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/service/IUserService.java mode change 100644 => 100755 src/main/java/com/epam/izh/rd/online/service/UserService.java diff --git a/src/main/java/com/epam/izh/rd/online/entity/User.java b/src/main/java/com/epam/izh/rd/online/entity/User.java old mode 100644 new mode 100755 diff --git a/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java b/src/main/java/com/epam/izh/rd/online/repository/IUserRepository.java old mode 100644 new mode 100755 diff --git a/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java b/src/main/java/com/epam/izh/rd/online/repository/UserRepository.java old mode 100644 new mode 100755 diff --git a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java old mode 100644 new mode 100755 index bcb09a7..ce597b8 --- a/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/AuthenticationService.java @@ -1,6 +1,8 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.exception.NotCorrectPasswordException; +import com.epam.izh.rd.online.exception.UserNotFoundException; import com.epam.izh.rd.online.repository.IUserRepository; public class AuthenticationService implements IAuthenticationService { @@ -25,13 +27,18 @@ public AuthenticationService(IUserRepository userRepository) { * @param user - пользователь проходящий авторизацию */ @Override - public User login(User user) { + public User login(User user) throws UserNotFoundException, NotCorrectPasswordException { // Находим пользователя в базе User foundUser = userRepository.findByLogin(user.getLogin()); - // - // Здесь необходимо реализовать перечисленные выше проверки - // + if (foundUser == null) { + throw new UserNotFoundException("Пользователь с таким логином не найден"); + } + + if (!user.getPassword().equals(foundUser.getPassword())) { + throw new NotCorrectPasswordException("Пароль введен неверно!"); + } + // Устанавливаем найденного пользователя, который прошел все проверки, как вошедшего в систему. CurrentUserManager.setCurrentLoggedInUser(foundUser); diff --git a/src/main/java/com/epam/izh/rd/online/service/CurrentUserManager.java b/src/main/java/com/epam/izh/rd/online/service/CurrentUserManager.java old mode 100644 new mode 100755 index 90d8441..5e21abf --- a/src/main/java/com/epam/izh/rd/online/service/CurrentUserManager.java +++ b/src/main/java/com/epam/izh/rd/online/service/CurrentUserManager.java @@ -20,7 +20,8 @@ public class CurrentUserManager { private static User currentUser; - private CurrentUserManager() {} + private CurrentUserManager() { + } public static User getCurrentLoggedInUser() { return currentUser; diff --git a/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java b/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java old mode 100644 new mode 100755 index 3f296c3..7840306 --- a/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java +++ b/src/main/java/com/epam/izh/rd/online/service/IAuthenticationService.java @@ -1,9 +1,11 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.exception.NotCorrectPasswordException; +import com.epam.izh.rd.online.exception.UserNotFoundException; public interface IAuthenticationService { - User login(User user); + User login(User user) throws UserNotFoundException, NotCorrectPasswordException; void logout(); } diff --git a/src/main/java/com/epam/izh/rd/online/service/IUserService.java b/src/main/java/com/epam/izh/rd/online/service/IUserService.java old mode 100644 new mode 100755 index de62d43..5cc0fcb --- a/src/main/java/com/epam/izh/rd/online/service/IUserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/IUserService.java @@ -1,10 +1,13 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.exception.NotAccessException; +import com.epam.izh.rd.online.exception.SimplePasswordException; +import com.epam.izh.rd.online.exception.UserAlreadyRegisteredException; public interface IUserService { - User register(User user); + User register(User user) throws UserAlreadyRegisteredException, SimplePasswordException; - void delete(String login); + void delete(String login) throws NotAccessException; } diff --git a/src/main/java/com/epam/izh/rd/online/service/UserService.java b/src/main/java/com/epam/izh/rd/online/service/UserService.java old mode 100644 new mode 100755 index 78c39ed..4bb76de --- a/src/main/java/com/epam/izh/rd/online/service/UserService.java +++ b/src/main/java/com/epam/izh/rd/online/service/UserService.java @@ -1,6 +1,9 @@ package com.epam.izh.rd.online.service; import com.epam.izh.rd.online.entity.User; +import com.epam.izh.rd.online.exception.NotAccessException; +import com.epam.izh.rd.online.exception.SimplePasswordException; +import com.epam.izh.rd.online.exception.UserAlreadyRegisteredException; import com.epam.izh.rd.online.repository.IUserRepository; import com.epam.izh.rd.online.repository.UserRepository; @@ -30,16 +33,25 @@ public UserService(IUserRepository userRepository) { * @param user - даныне регистрирующегося пользователя */ @Override - public User register(User user) { + public User register(User user) throws UserAlreadyRegisteredException, SimplePasswordException { - // - // Здесь необходимо реализовать перечисленные выше проверки - // + if (user.getLogin().isEmpty() || user.getPassword().isEmpty()) { + throw new IllegalArgumentException("Ошибка в заполнении полей"); + } + + User findByLogin = userRepository.findByLogin(user.getLogin()); + if (findByLogin != null) { + throw new UserAlreadyRegisteredException("Пользователь с логином " + user.getLogin() + " уже зарегистрирован"); + } + + if (user.getPassword().matches("\\d+")) { + throw new SimplePasswordException("Пароль не соответствует требованиям безопасности"); + } - // Если все проверки успешно пройдены, сохраняем пользователя в базу return userRepository.save(user); } + /** * Необходимо доработать данный метод следующим функционлом: *

@@ -58,14 +70,16 @@ public User register(User user) { * * @param login */ - public void delete(String login) { - // Здесь необходимо сделать доработку метод + public void delete(String login) throws NotAccessException { + try { + if (!"Admin".equals(login)) { + throw new UnsupportedOperationException(); + } userRepository.deleteByLogin(login); - - // Здесь необходимо сделать доработку метода - + } catch (UnsupportedOperationException exception) { + throw new NotAccessException("Недостаточно прав для выполнения операции"); + } } - }