aboutsummaryrefslogtreecommitdiff
path: root/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-03-17 23:16:29 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-03-17 23:16:29 -0400
commit68515441acd77d3356e8ec8b58700411661fec13 (patch)
treef3e08e4eecb5c06c8149d56ca08253a3c2d92607 /ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java
parent7a5c5073e9e410b3ccc3ab7902a0d6f558277c7d (diff)
parent275a6062007380389b7a8f1b8958e8033b4f0925 (diff)
downloadJellySolutions-68515441acd77d3356e8ec8b58700411661fec13.tar.gz
JellySolutions-68515441acd77d3356e8ec8b58700411661fec13.tar.bz2
JellySolutions-68515441acd77d3356e8ec8b58700411661fec13.zip
Merge remote-tracking branch 'refs/remotes/origin/main' into funding_basket
# Conflicts: # ufund-ui/src/app/components/funding-basket/funding-basket.component.ts
Diffstat (limited to 'ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java')
-rw-r--r--ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java
new file mode 100644
index 0000000..0a0cb71
--- /dev/null
+++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/service/UserServiceTest.java
@@ -0,0 +1,126 @@
+package com.ufund.api.ufundapi.service;
+
+import java.io.IOException;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import static org.mockito.ArgumentMatchers.any;
+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.persistence.UserDAO;
+
+public class UserServiceTest {
+
+ private UserService userService;
+ private UserDAO mockUserDAO;
+
+
+ @BeforeEach
+ public void setupUserService() {
+ mockUserDAO = mock(UserDAO.class);
+ userService = new UserService(mockUserDAO);
+ }
+
+ @Test
+ public void testCreateUser() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User user = User.create(username, password);
+
+ // Mock
+ when(mockUserDAO.getUser(username)).thenReturn(null);
+ when(mockUserDAO.addUser(any())).thenReturn(user);
+
+ // Invoke
+
+ // Analyze
+ assertEquals(user, userService.createUser(username, password));
+ }
+
+ @Test
+ public void testCreateUserDuplicate() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User user = User.create(username, password);
+
+ // Mock
+ when(mockUserDAO.getUser(username)).thenReturn(User.create("Phil", "Phil"));
+ when(mockUserDAO.addUser(any())).thenReturn(user);
+
+ // Analyze
+ assertThrows(DuplicateKeyException.class, () -> userService.createUser(username, password));
+ }
+
+ @Test
+ public void testGetUser() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User user = User.create(username, password);
+
+ // Mock
+ when(mockUserDAO.getUser(username)).thenReturn(user);
+
+ // Analyze
+ assertEquals(user, userService.getUser(username));
+ }
+
+ @Test
+ public void testUpdateUser() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User oldUser = User.create(username, password);
+
+ String newUsername = "Jelly";
+ String newPassword = "Dog";
+ User newUser = User.create(newUsername, newPassword);
+
+ // Mock
+ when(mockUserDAO.updateUser(newUser)).thenReturn(newUser);
+
+ // Analyze
+ assertEquals(newUser, userService.updateUser(newUser, oldUser.getUsername()));
+ }
+
+ @Test
+ public void testUpdateUserDifferentUsernames() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User oldUser = User.create(username, password);
+
+ String newUsername = "Cat";
+ String newPassword = "Fish";
+ User newUser = User.create(newUsername, newPassword);
+
+ // Mock
+ when(mockUserDAO.updateUser(newUser)).thenReturn(newUser);
+
+ // Analyze
+ assertThrows(IllegalArgumentException.class, () -> userService.updateUser(newUser, oldUser.getUsername()));
+ }
+
+ @Test
+ public void testDeleteUser() throws IOException, DuplicateKeyException {
+ // Setup
+ String username = "Jelly";
+ String password = "Fish";
+ User user = User.create(username, password);
+
+ // Mock
+ when(mockUserDAO.deleteUser(username)).thenReturn(true);
+
+ // Analyze
+ assertTrue(userService.deleteUser(username));
+ }
+
+}