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.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  }