diff --git a/src/main/java/mate/academy/Main.java b/src/main/java/mate/academy/Main.java index 37130e8fa..d6860a3a5 100644 --- a/src/main/java/mate/academy/Main.java +++ b/src/main/java/mate/academy/Main.java @@ -1,10 +1,23 @@ package mate.academy; - +import mate.academy.model.User; import mate.academy.service.AuthenticationService; +import mate.academy.service.UserService; + +import java.util.Arrays; +import java.util.List; public class Main { - private static final AuthenticationService authenticationService = new AuthenticationService(); + private static final AuthenticationService authenticationService; + static { + List users = Arrays.asList( + new User("bob@i.ua", "1234"), + new User("alice@i.ua", "1234"), + new User("john@i.ua", "4321") + ); + UserService userService = new UserService(users); + authenticationService = new AuthenticationService(userService); + } public static void main(String[] args) { test("bob@i.ua", "1234", true); test("alice@i.ua", "1234", true); @@ -17,8 +30,8 @@ private static void test(String email, String password, boolean expected) { if (expected == actual) { System.out.println("Test passed for email: " + email + " and password " + password); } else { - - System.out.println("Test passed for email: " + email + " and password " + password); + System.out.print("Expected to receive " + expected + ", but was " + actual + ". "); + System.out.println("Email: " + email + ", password " + password); } } } diff --git a/src/main/java/mate/academy/model/User.java b/src/main/java/mate/academy/model/User.java index 22dc6ff8b..e7a07b529 100644 --- a/src/main/java/mate/academy/model/User.java +++ b/src/main/java/mate/academy/model/User.java @@ -1,8 +1,8 @@ package mate.academy.model; public class User { - private String email; - private String password; + private final String email; + private final String password; public User(String email, String password) { this.email = email; @@ -14,6 +14,7 @@ public String getEmail() { } public String getPassword() { + return password; } } diff --git a/src/main/java/mate/academy/service/AuthenticationService.java b/src/main/java/mate/academy/service/AuthenticationService.java index 8f7c7c975..2cd7329a2 100644 --- a/src/main/java/mate/academy/service/AuthenticationService.java +++ b/src/main/java/mate/academy/service/AuthenticationService.java @@ -1,16 +1,21 @@ package mate.academy.service; +import mate.academy.model.User; + public class AuthenticationService { - /** - * Imagine that some user wants to login to your site. - * You should check if user credentials (login and password) are valid or not. - * All users are stored in UserService class. - * @param email - user's email - * @param password - user's password - * @return true if user by email exists and passed password is equal to user's password. - * Return false in any other cases. - */ + private final UserService userService; + + public AuthenticationService(UserService userService) { + this.userService = userService; + } + public boolean login(String email, String password) { + User user = userService.findByEmail(email); + + if (user != null && user.getPassword().equals(password)) { + return true; + } + return false; } -} +} \ No newline at end of file diff --git a/src/main/java/mate/academy/service/UserService.java b/src/main/java/mate/academy/service/UserService.java index 1652d7d68..df2cfdbb6 100644 --- a/src/main/java/mate/academy/service/UserService.java +++ b/src/main/java/mate/academy/service/UserService.java @@ -1,12 +1,14 @@ package mate.academy.service; import mate.academy.model.User; +import java.util.List; public class UserService { - private static final User[] users = new User[] { - new User("bob@i.ua", "1234"), - new User("alice@i.ua", "1234") - }; + private final List users; + + public UserService(List users) { + this.users = users; + } /** * Find user by email. All users are stored in private static final User[] users @@ -15,6 +17,11 @@ public class UserService { * Return null if there is no suitable user */ public User findByEmail(String email) { + for (User user : users) { + if (user.getEmail().equals(email)) { + return user; + } + } return null; } }