View Javadoc
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  }