aboutsummaryrefslogtreecommitdiff
path: root/ufund-api
diff options
context:
space:
mode:
Diffstat (limited to 'ufund-api')
-rw-r--r--ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java
new file mode 100644
index 0000000..dfe9b10
--- /dev/null
+++ b/ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java
@@ -0,0 +1,112 @@
+package com.ufund.api.ufundapi.persistence;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import com.ufund.api.ufundapi.model.User;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+
+@Tag("Persistence-tier")
+public class UserFileDAOTest {
+ UserFileDAO userFileDAO;
+ User[] testUsers;
+ ObjectMapper mockObjectMapper;
+
+ @BeforeEach
+ public void setupHeroFileDAO() throws IOException {
+ mockObjectMapper = mock(ObjectMapper.class);
+ testUsers = new User[3];
+ testUsers[0] = new User("bob");
+ testUsers[1] = new User("admin");
+ testUsers[2] = new User("jelly12");
+
+ // When the object mapper is supposed to read from the file
+ // the mock object mapper will return the hero array above
+ when(mockObjectMapper
+ .readValue(new File("doesnt_matter.txt"),User[].class))
+ .thenReturn(testUsers);
+ userFileDAO = new UserFileDAO("doesnt_matter.txt",mockObjectMapper);
+ }
+
+ @Test
+ public void GetUsersTest() throws IOException {
+ User[] users = userFileDAO.getUsers();
+
+ assertEquals(users.length,testUsers.length);
+
+ for (int i = 0; i < testUsers.length;++i) {
+ boolean isInArray = false;
+ for (User user : testUsers) {
+ if (users[i].getName().equals(user.getName())) {
+ isInArray = true;
+ }
+ }
+ assertTrue(isInArray);
+ }
+ }
+
+ @Test
+ public void FindUsersTest() throws IOException {
+ User realUser1 = userFileDAO.getUser("bob");
+ User realUser2 = userFileDAO.getUser("admin");
+
+ assertEquals(testUsers[0], realUser1);
+ assertEquals(testUsers[1], realUser2);
+ }
+
+ @Test
+ public void FindUsersNullTest() throws IOException {
+ User fakeUser = userFileDAO.getUser("phil.n.thropist");
+
+ assertNull(fakeUser);
+ }
+
+ @Test
+ public void CreateUserTest() throws IOException {
+ User newUser = new User("keshey");
+ userFileDAO.createUser(newUser);
+
+ User actualUser = userFileDAO.getUser("keshey");
+ assertNotNull(actualUser);
+
+ assertEquals(actualUser.getName(), newUser.getName());
+ }
+
+ @Test
+ public void DeleteUserTest() throws IOException {
+ User notDeletedUser = userFileDAO.getUser("jelly12");
+ assertNotNull(notDeletedUser);
+
+ boolean isDeleted = userFileDAO.deleteUser("jelly12");
+ assertTrue(isDeleted);
+
+ User deletedUser = userFileDAO.getUser("jelly12");
+ assertNull(deletedUser);
+ }
+
+ @Test
+ public void UpdateUserTest() throws IOException {
+ User toBeUpdatedUser = userFileDAO.getUser("admin");
+ assertNotNull(toBeUpdatedUser);
+
+ User updatedUser = new User("jellinadmin");
+
+ updatedUser = userFileDAO.updateUser(updatedUser, "admin");
+ assertNotEquals(toBeUpdatedUser, updatedUser);
+ assertEquals("jellinadmin", updatedUser.getName());
+ }
+
+}