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