View Javadoc
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.TimeseriesTupleDAO;
9   import de.dlr.shepard.data.timeseries.model.TimeseriesTuple;
10  import java.util.Collections;
11  import java.util.List;
12  import java.util.Map;
13  import java.util.Optional;
14  import org.junit.jupiter.api.Test;
15  import org.mockito.InjectMocks;
16  import org.mockito.Mock;
17  import org.neo4j.ogm.session.Session;
18  
19  public class TimeseriesTupleDAOTest extends BaseTestCase {
20  
21    @Mock
22    private Session session;
23  
24    @InjectMocks
25    private TimeseriesTupleDAO dao = new TimeseriesTupleDAO();
26  
27    @Test
28    public void findTest() {
29      var ts = new TimeseriesTuple("meas", "dev", "loc", "symName", "value");
30      var query =
31        """
32        MATCH (t:TimeseriesTuple { measurement: $measurement, device: $device, location: $location, symbolicName: $symbolicName, field: $field }) \
33        MATCH path=(t)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
34        RETURN t, nodes(path), relationships(path)""";
35  
36      when(
37        session.query(
38          TimeseriesTuple.class,
39          query,
40          Map.of("measurement", "meas", "device", "dev", "location", "loc", "symbolicName", "symName", "field", "value")
41        )
42      ).thenReturn(List.of(ts));
43      var actual = dao.find(ts).orElseThrow();
44      assertEquals(ts, actual);
45    }
46  
47    @Test
48    public void findTest_notFound() {
49      var query =
50        """
51        MATCH (t:TimeseriesTuple { measurement: $measurement, device: $device, location: $location, symbolicName: $symbolicName, field: $field }) \
52        MATCH path=(t)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
53        RETURN t, nodes(path), relationships(path)""";
54  
55      when(
56        session.query(
57          TimeseriesTuple.class,
58          query,
59          Map.of("measurement", "meas", "device", "dev", "location", "loc", "symbolicName", "symName", "field", "value")
60        )
61      ).thenReturn(Collections.emptyList());
62      var ts = new TimeseriesTuple("meas", "dev", "loc", "symName", "value");
63      var actual = dao.find(ts);
64      assertEquals(Optional.empty(), actual);
65    }
66  }