diff --git a/src/main/java/core/basesyntax/PasswordValidationException.java b/src/main/java/core/basesyntax/PasswordValidationException.java index c9e7ed3e7..70c1d49fd 100644 --- a/src/main/java/core/basesyntax/PasswordValidationException.java +++ b/src/main/java/core/basesyntax/PasswordValidationException.java @@ -1,3 +1,7 @@ package core.basesyntax; -//write your code here +public class PasswordValidationException extends Exception { + public PasswordValidationException(String message) { + super(message); + } +} diff --git a/src/main/java/core/basesyntax/PasswordValidator.java b/src/main/java/core/basesyntax/PasswordValidator.java index d4655c9f5..10b89d10c 100644 --- a/src/main/java/core/basesyntax/PasswordValidator.java +++ b/src/main/java/core/basesyntax/PasswordValidator.java @@ -1,7 +1,18 @@ package core.basesyntax; public class PasswordValidator { - public void validate(String password, String repeatPassword) { - //write your code here + public void validate(String password, String repeatPassword) + throws PasswordValidationException { + if (password == null || repeatPassword == null) { + throw new PasswordValidationException("Passwords cannot be null"); + } + + if (password.isEmpty() || repeatPassword.isEmpty()) { + throw new PasswordValidationException("Passwords cannot be empty"); + } + + if (password.length() < 10 || !password.equals(repeatPassword)) { + throw new PasswordValidationException("Wrong passwords"); + } } } diff --git a/src/main/java/core/basesyntax/User.java b/src/main/java/core/basesyntax/User.java index e702946a8..f95d30fb1 100644 --- a/src/main/java/core/basesyntax/User.java +++ b/src/main/java/core/basesyntax/User.java @@ -1,9 +1,9 @@ package core.basesyntax; public class User { - private String email; - private String password; - private String repeatPassword; + private final String email; + private final String password; + private final String repeatPassword; public User(String email, String password, String repeatPassword) { this.email = email; @@ -11,36 +11,20 @@ public User(String email, String password, String repeatPassword) { this.repeatPassword = repeatPassword; } - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - public String getPassword() { return password; } - public void setPassword(String password) { - this.password = password; - } - public String getRepeatPassword() { return repeatPassword; } - public void setRepeatPassword(String repeatPassword) { - this.repeatPassword = repeatPassword; - } - @Override public String toString() { return "User{" - + "email='" + email + '\'' - + ", password='" + password + '\'' - + ", repeatPassword='" + repeatPassword + '\'' - + '}'; + + "email='" + email + '\'' + + ", password='" + password + '\'' + + ", repeatPassword='" + repeatPassword + '\'' + + '}'; } } diff --git a/src/main/java/core/basesyntax/UserService.java b/src/main/java/core/basesyntax/UserService.java index 52f08d130..69925eaa9 100644 --- a/src/main/java/core/basesyntax/UserService.java +++ b/src/main/java/core/basesyntax/UserService.java @@ -1,8 +1,15 @@ package core.basesyntax; public class UserService { + private final PasswordValidator passwordValidator = new PasswordValidator(); + public void registerUser(User user) { - //write your code here + try { + passwordValidator.validate(user.getPassword(), user.getRepeatPassword()); + saveUser(user); + } catch (PasswordValidationException e) { + System.out.println("Your passwords are incorrect. Try again."); + } } public void saveUser(User user) { diff --git a/src/test/java/core/basesyntax/UserServiceTest.java b/src/test/java/core/basesyntax/UserServiceTest.java index 757d0f4ec..8e2d37b7e 100644 --- a/src/test/java/core/basesyntax/UserServiceTest.java +++ b/src/test/java/core/basesyntax/UserServiceTest.java @@ -5,6 +5,7 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; + import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.lang.reflect.Method;