1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
package com.ufund.api.ufundapi.persistence;
import java.io.File;
import java.io.IOException;
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 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.fasterxml.jackson.databind.ObjectMapper;
import com.ufund.api.ufundapi.model.User;
@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] = User.create("bob", "pass");
testUsers[1] = User.create("admin", "pass");
testUsers[2] = User.create("jelly12", "pass");
// 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() {
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].getUsername().equals(user.getUsername())) {
isInArray = true;
break;
}
}
assertTrue(isInArray);
}
}
@Test
public void findUsersTest() {
User realUser1 = userFileDAO.getUser("bob");
User realUser2 = userFileDAO.getUser("admin");
assertEquals(testUsers[0], realUser1);
assertEquals(testUsers[1], realUser2);
}
@Test
public void findUsersNullTest() {
User fakeUser = userFileDAO.getUser("phil.n.thropist");
assertNull(fakeUser);
}
@Test
public void createUserTest() throws IOException {
User newUser = User.create("keshey", "pass");
userFileDAO.addUser(newUser);
User actualUser = userFileDAO.getUser("keshey");
assertNotNull(actualUser);
assertEquals(actualUser.getUsername(), newUser.getUsername());
}
@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 = User.create("admin", "newPass");
updatedUser = userFileDAO.updateUser(updatedUser);
assertNotEquals(toBeUpdatedUser, updatedUser);
assertEquals("admin", updatedUser.getUsername());
}
}
|