1 package de.dlr.shepard.auth.permission.daos;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertNull;
5 import static org.mockito.Mockito.verify;
6 import static org.mockito.Mockito.when;
7
8 import de.dlr.shepard.BaseTestCase;
9 import de.dlr.shepard.auth.permission.model.Permissions;
10 import java.util.Collections;
11 import java.util.List;
12 import org.junit.jupiter.api.Test;
13 import org.mockito.InjectMocks;
14 import org.mockito.Mock;
15 import org.neo4j.ogm.session.Session;
16
17 public class PermissionsDAOTest extends BaseTestCase {
18
19 @Mock
20 private Session session;
21
22 @InjectMocks
23 private PermissionsDAO dao;
24
25 @Test
26 public void getEntityTypeTest() {
27 var type = dao.getEntityType();
28 assertEquals(Permissions.class, type);
29 }
30
31 @Test
32 public void findByEntityTest() {
33 var perm = new Permissions(1L);
34 String query =
35 """
36 MATCH (e:BasicEntity)-[:has_permissions]->(p:Permissions) WHERE ID(e) = 2 \
37 MATCH path=(p)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
38 RETURN p, nodes(path), relationships(path)""";
39 when(session.query(Permissions.class, query, Collections.emptyMap())).thenReturn(List.of(perm));
40 var actual = dao.findByEntityNeo4jId(2L);
41 verify(session).query(Permissions.class, query, Collections.emptyMap());
42 assertEquals(perm, actual);
43 }
44
45 @Test
46 public void findByEntityTest_notFound() {
47 String query =
48 """
49 MATCH (e:BasicEntity)-[:has_permissions]->(p:Permissions) WHERE ID(e) = 1 \
50 MATCH path=(p)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
51 RETURN p, nodes(path), relationships(path)""";
52 when(session.query(Permissions.class, query, Collections.emptyMap())).thenReturn(Collections.emptyList());
53 var actual = dao.findByEntityNeo4jId(1L);
54 verify(session).query(Permissions.class, query, Collections.emptyMap());
55 assertNull(actual);
56 }
57 }