1 package de.dlr.shepard.data.structureddata.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.when;
6
7 import de.dlr.shepard.BaseTestCase;
8 import de.dlr.shepard.data.structureddata.entities.StructuredData;
9 import java.util.Collections;
10 import java.util.Date;
11 import java.util.List;
12 import java.util.Map;
13 import org.junit.jupiter.api.Test;
14 import org.mockito.InjectMocks;
15 import org.mockito.Mock;
16 import org.neo4j.ogm.session.Session;
17
18 public class StructuredDataDAOTest extends BaseTestCase {
19
20 @Mock
21 private Session session;
22
23 @InjectMocks
24 private StructuredDataDAO dao = new StructuredDataDAO();
25
26 @Test
27 public void findTest() {
28 var sd = new StructuredData("oid", new Date(), "name");
29 var query =
30 """
31 MATCH (c:StructuredDataContainer)-[:structureddata_in_container]->(s:StructuredData {oid: $oid}) \
32 WHERE ID(c)=123 MATCH path=(s)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
33 RETURN s, nodes(path), relationships(path)""";
34
35 when(session.query(StructuredData.class, query, Map.of("oid", "oid"))).thenReturn(List.of(sd));
36 var actual = dao.find(123L, "oid");
37 assertEquals(sd, actual);
38 }
39
40 @Test
41 public void findTest_notFound() {
42 var query =
43 """
44 MATCH (c:StructuredDataContainer)-[:structureddata_in_container]->(s:StructuredData {oid: $oid}) \
45 WHERE ID(c)=123 MATCH path=(s)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
46 RETURN s, nodes(path), relationships(path)""";
47
48 when(session.query(StructuredData.class, query, Map.of("oid", "oid"))).thenReturn(Collections.emptyList());
49 var actual = dao.find(123L, "oid");
50 assertNull(actual);
51 }
52 }