From 1b617f8c7a1b596c8725a0e1e2791902190f415b Mon Sep 17 00:00:00 2001 From: Gunther6070 Date: Mon, 17 Mar 2025 14:16:42 -0400 Subject: Created tests for authService --- .../api/ufundapi/service/AuthServiceTest.java | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java (limited to 'ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java') diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java new file mode 100644 index 0000000..68217bf --- /dev/null +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java @@ -0,0 +1,130 @@ +package com.ufund.api.ufundapi.service; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.IOException; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import com.ufund.api.ufundapi.DuplicateKeyException; +import com.ufund.api.ufundapi.model.User; +import com.ufund.api.ufundapi.model.UserAuth; +import com.ufund.api.ufundapi.persistence.UserAuthDAO; + +public class AuthServiceTest { + + private UserAuthDAO mockAuthDAO; + private UserService mockUserService; + private AuthService authService; + + @BeforeEach + public void setupAuthService() { + mockAuthDAO = mock(UserAuthDAO.class); + mockUserService = mock(UserService.class); + authService = new AuthService(mockAuthDAO, mockUserService); + + } + + @Test + public void testAuthenticate() throws IOException { + // Setup + String username = "Fish"; + String key = UserAuth.generate(username).getKey(); + + // Mock + when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, username, null)); + + // Analyze + assertDoesNotThrow(() -> authService.authenticate(username, key)); + + } + + @Test + public void testAuthenticateMismatchName() throws IOException { + // Setup + String username = "Fish"; + String key = UserAuth.generate(username).getKey(); + + // Mock + when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, "EvilFish", null)); + + // Analyze + assertThrows(IllegalAccessException.class, () -> authService.authenticate(username, key)); + + } + + @Test + public void testAuthenticateMissingUserAuth() throws IOException { + // Setup + String username = "Fish"; + String key = UserAuth.generate(username).getKey(); + + // Mock + when(mockAuthDAO.getUserAuth(key)).thenReturn(null); + + // Analyze + assertThrows(IllegalAccessException.class, () -> authService.authenticate(username, key)); + + } + + @Test + public void testLogin() throws IOException, DuplicateKeyException, IllegalAccessException { + // Setup + String username = "Fish"; + String password = "Chips"; + User user = User.create(username, password); + + // Mock + when(mockUserService.getUser(username)).thenReturn(user); + + + // Analyze + assertDoesNotThrow(() -> authService.login(username, password)); + } + + @Test + public void testLoginNullUser() throws IOException, DuplicateKeyException, IllegalAccessException { + // Setup + String username = "Fish"; + String password = "Chips"; + User user = User.create(username, password); + + // Mock + when(mockUserService.getUser(username)).thenReturn(null); + + // Analyze + assertThrows(IllegalAccessException.class, () -> authService.login(username, password)); + } + + @Test + public void testLoginMismatchPasswords() throws IOException, DuplicateKeyException, IllegalAccessException { + // Setup + String username = "Fish"; + String password = "Chips"; + User user = User.create(username, password); + + // Mock + when(mockUserService.getUser(username)).thenReturn(User.create(username, "fries")); + + // Analyze + assertThrows(IllegalAccessException.class, () -> authService.login(username, password)); + } + + @Test + public void testLogout() throws IOException, DuplicateKeyException, IllegalAccessException { + // Setup + String username = "Fish"; + String password = "Chips"; + String key = UserAuth.generate(username).getKey(); + User user = User.create(username, password); + + // Analyze + assertDoesNotThrow(() -> authService.logout(key)); + + } + +} -- cgit v1.2.3 From 42fccd0740565ed50a34f4a69942ea478f700ce1 Mon Sep 17 00:00:00 2001 From: Gunther6070 Date: Mon, 17 Mar 2025 15:35:12 -0400 Subject: Fixed imports --- .../java/com/ufund/api/ufundapi/service/AuthServiceTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java') diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java index 68217bf..31ada05 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java @@ -1,20 +1,21 @@ package com.ufund.api.ufundapi.service; -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - import java.io.IOException; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertThrows; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import com.ufund.api.ufundapi.DuplicateKeyException; import com.ufund.api.ufundapi.model.User; import com.ufund.api.ufundapi.model.UserAuth; import com.ufund.api.ufundapi.persistence.UserAuthDAO; +@Tag("Service-tier") public class AuthServiceTest { private UserAuthDAO mockAuthDAO; -- cgit v1.2.3 From 02ba2aecbded78d80885f9a58ed112a0e55f9d24 Mon Sep 17 00:00:00 2001 From: Gunther6070 Date: Mon, 17 Mar 2025 16:29:50 -0400 Subject: Fixed broken tests after auth refactor --- .../api/ufundapi/service/AuthServiceTest.java | 53 +++++++--------------- 1 file changed, 16 insertions(+), 37 deletions(-) (limited to 'ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java') diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java index 31ada05..7770c40 100644 --- a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java +++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/AuthServiceTest.java @@ -1,14 +1,15 @@ package com.ufund.api.ufundapi.service; -import java.io.IOException; - import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.io.IOException; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; import com.ufund.api.ufundapi.DuplicateKeyException; import com.ufund.api.ufundapi.model.User; @@ -21,23 +22,29 @@ public class AuthServiceTest { private UserAuthDAO mockAuthDAO; private UserService mockUserService; private AuthService authService; + private String username; + private String key; + private String password; + private User user; @BeforeEach public void setupAuthService() { mockAuthDAO = mock(UserAuthDAO.class); mockUserService = mock(UserService.class); authService = new AuthService(mockAuthDAO, mockUserService); + + username = "Fish"; + password = "sticks"; + key = UserAuth.generate(username).getKey(); + user = User.create(username, password); } @Test public void testAuthenticate() throws IOException { - // Setup - String username = "Fish"; - String key = UserAuth.generate(username).getKey(); - // Mock when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, username, null)); + when(mockUserService.getUser(username)).thenReturn(user); // Analyze assertDoesNotThrow(() -> authService.authenticate(username, key)); @@ -46,12 +53,9 @@ public class AuthServiceTest { @Test public void testAuthenticateMismatchName() throws IOException { - // Setup - String username = "Fish"; - String key = UserAuth.generate(username).getKey(); - // Mock when(mockAuthDAO.getUserAuth(key)).thenReturn(new UserAuth(key, "EvilFish", null)); + when(mockUserService.getUser("EvilFish")).thenReturn(user); // Analyze assertThrows(IllegalAccessException.class, () -> authService.authenticate(username, key)); @@ -60,10 +64,6 @@ public class AuthServiceTest { @Test public void testAuthenticateMissingUserAuth() throws IOException { - // Setup - String username = "Fish"; - String key = UserAuth.generate(username).getKey(); - // Mock when(mockAuthDAO.getUserAuth(key)).thenReturn(null); @@ -74,11 +74,6 @@ public class AuthServiceTest { @Test public void testLogin() throws IOException, DuplicateKeyException, IllegalAccessException { - // Setup - String username = "Fish"; - String password = "Chips"; - User user = User.create(username, password); - // Mock when(mockUserService.getUser(username)).thenReturn(user); @@ -89,11 +84,6 @@ public class AuthServiceTest { @Test public void testLoginNullUser() throws IOException, DuplicateKeyException, IllegalAccessException { - // Setup - String username = "Fish"; - String password = "Chips"; - User user = User.create(username, password); - // Mock when(mockUserService.getUser(username)).thenReturn(null); @@ -103,11 +93,6 @@ public class AuthServiceTest { @Test public void testLoginMismatchPasswords() throws IOException, DuplicateKeyException, IllegalAccessException { - // Setup - String username = "Fish"; - String password = "Chips"; - User user = User.create(username, password); - // Mock when(mockUserService.getUser(username)).thenReturn(User.create(username, "fries")); @@ -117,12 +102,6 @@ public class AuthServiceTest { @Test public void testLogout() throws IOException, DuplicateKeyException, IllegalAccessException { - // Setup - String username = "Fish"; - String password = "Chips"; - String key = UserAuth.generate(username).getKey(); - User user = User.create(username, password); - // Analyze assertDoesNotThrow(() -> authService.logout(key)); -- cgit v1.2.3