1 package de.dlr.shepard.context.references.timeseriesreference;
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.context.references.timeseriesreference.daos.ReferencedTimeseriesNodeEntityDAO;
9 import de.dlr.shepard.context.references.timeseriesreference.model.ReferencedTimeseriesNodeEntity;
10 import java.util.Collections;
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 ReferencedTimeseriesNodeEntityDAOTest extends BaseTestCase {
19
20 @Mock
21 private Session session;
22
23 @InjectMocks
24 private ReferencedTimeseriesNodeEntityDAO dao = new ReferencedTimeseriesNodeEntityDAO();
25
26 @Test
27 public void findTest() {
28 var ts = new ReferencedTimeseriesNodeEntity("meas", "dev", "loc", "symName", "value");
29 var query =
30 """
31 MATCH (t:Timeseries { measurement: $measurement, device: $device, location: $location, symbolicName: $symbolicName, field: $field }) \
32 MATCH path=(t)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
33 RETURN t, nodes(path), relationships(path)""";
34
35 when(
36 session.query(
37 ReferencedTimeseriesNodeEntity.class,
38 query,
39 Map.of("measurement", "meas", "device", "dev", "location", "loc", "symbolicName", "symName", "field", "value")
40 )
41 ).thenReturn(List.of(ts));
42 var actual = dao.find("meas", "dev", "loc", "symName", "value");
43 assertEquals(ts, actual);
44 }
45
46 @Test
47 public void findTest_notFound() {
48 var query =
49 """
50 MATCH (t:Timeseries { measurement: $measurement, device: $device, location: $location, symbolicName: $symbolicName, field: $field }) \
51 MATCH path=(t)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
52 RETURN t, nodes(path), relationships(path)""";
53
54 when(
55 session.query(
56 ReferencedTimeseriesNodeEntity.class,
57 query,
58 Map.of("measurement", "meas", "device", "dev", "location", "loc", "symbolicName", "symName", "field", "value")
59 )
60 ).thenReturn(Collections.emptyList());
61 var actual = dao.find("meas", "dev", "loc", "symName", "value");
62 assertNull(actual);
63 }
64 }