Newer
Older
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
package it.inaf.ia2.gms.controller;
import it.inaf.ia2.gms.persistence.GroupsDAO;
import it.inaf.ia2.gms.persistence.MembershipsDAO;
import it.inaf.ia2.gms.persistence.model.GroupEntity;
import java.security.Principal;
import java.util.Optional;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import static org.mockito.Mockito.when;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(MockitoJUnitRunner.class)
public class JWTWebServiceControllerTest {
@Mock
private MembershipsDAO membershipsDAO;
@Mock
private GroupsDAO groupsDAO;
@InjectMocks
private JWTWebServiceController controller;
private final Principal principal = new Principal() {
@Override
public String getName() {
return "TEST_PRINCIPAL";
}
};
private MockMvc mockMvc;
@Before
public void init() {
mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@Test
public void testIsMemberOf() throws Exception {
GroupEntity group1 = new GroupEntity();
group1.setId("1");
group1.setPath("1");
group1.setName("group.1");
GroupEntity group2 = new GroupEntity();
group2.setId("2");
group2.setPath("1.2");
group2.setName("subgroup");
GroupEntity group3 = new GroupEntity();
group3.setId("3");
group3.setPath("1.2.3");
group3.setName("subsubgroup");
when(groupsDAO.findGroupByParentAndName(eq(""), eq("group.1")))
.thenReturn(Optional.of(group1));
when(groupsDAO.findGroupByParentAndName(eq("1"), eq("subgroup")))
.thenReturn(Optional.of(group2));
when(groupsDAO.findGroupByParentAndName(eq("1.2"), eq("subsubgroup")))
.thenReturn(Optional.of(group3));
when(membershipsDAO.isMemberOf(anyString(), eq(group3.getId()))).thenReturn(true);
String group = "group\\.1.subgroup.subsubgroup";
mockMvc.perform(get("/ws/jwt/search/" + group).principal(principal))
.andExpect(status().isOk())
.andExpect(content().string(group + "\n"));
}
}