diff options
Diffstat (limited to 'ufund-api/src/test/java/com/ufund/api')
-rw-r--r-- | ufund-api/src/test/java/com/ufund/api/ufundapi/persistence/UserFileDAOTest.java | 112 |
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()); + } + +} |