Newer
Older
Sonia Zorba
committed
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
package it.inaf.ia2.gms.persistence;
import it.inaf.ia2.gms.DataSourceConfig;
import it.inaf.ia2.gms.persistence.model.GroupEntity;
import it.inaf.ia2.gms.persistence.model.MembershipEntity;
import java.util.ArrayList;
import java.util.Arrays;
import javax.sql.DataSource;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = DataSourceConfig.class)
public class MembershipsDAOTest {
private static final String USER_1 = "user-1";
private static final String USER_2 = "user-2";
@Autowired
private DataSource dataSource;
private GroupsDAO groupsDAO;
private MembershipsDAO membershipsDAO;
@Before
public void setUp() {
groupsDAO = new GroupsDAO(dataSource);
membershipsDAO = new MembershipsDAO(dataSource);
}
@Test
public void testAddAndRemoveMembers() {
groupsDAO.createGroup(groupEntity("A"));
groupsDAO.createGroup(groupEntity("B"));
assertTrue(membershipsDAO.findByGroup("A").isEmpty());
membershipsDAO.addMember(membershipEntity(USER_1, "A"));
membershipsDAO.addMember(membershipEntity(USER_1, "B"));
membershipsDAO.addMember(membershipEntity(USER_2, "B"));
assertTrue(membershipsDAO.findByGroup("A").contains(membershipEntity(USER_1, "A")));
assertEquals(3, membershipsDAO.findByGroups(Arrays.asList("A", "B")).size());
assertEquals(2, membershipsDAO.getUserMemberships(USER_1).size());
assertEquals(1, membershipsDAO.getUserMemberships(USER_2, "").size());
assertTrue(membershipsDAO.isMemberOf(USER_1, "B"));
membershipsDAO.removeMembership("B", USER_1);
assertFalse(membershipsDAO.isMemberOf(USER_1, "B"));
assertTrue(membershipsDAO.isMemberOf(USER_1, "A"));
assertTrue(membershipsDAO.isMemberOf(USER_2, "B"));
membershipsDAO.deleteAllGroupsMembership(Arrays.asList("A", "B"));
assertFalse(membershipsDAO.isMemberOf(USER_1, "A"));
assertFalse(membershipsDAO.isMemberOf(USER_2, "B"));
}
@Test
public void testFindByGroupsEmptyList() {
assertTrue(membershipsDAO.findByGroups(new ArrayList<>()).isEmpty());
}
@Test
public void testDeleteAllGroupsMembershipEmptyList() {
membershipsDAO.deleteAllGroupsMembership(new ArrayList<>());
}
private GroupEntity groupEntity(String groupId) {
GroupEntity groupEntity = new GroupEntity();
groupEntity.setId(groupId);
groupEntity.setName(groupId);
groupEntity.setPath(groupId);
groupEntity.setLeaf(false);
return groupEntity;
}
private MembershipEntity membershipEntity(String userId, String groupId) {
MembershipEntity membershipEntity = new MembershipEntity();
membershipEntity.setUserId(userId);
membershipEntity.setGroupId(groupId);
return membershipEntity;
}
}