View Javadoc
1   package de.dlr.shepard.context.references.spatialdatareference;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.mockito.Mockito.verify;
5   import static org.mockito.Mockito.when;
6   
7   import de.dlr.shepard.BaseTestCase;
8   import de.dlr.shepard.context.collection.entities.DataObject;
9   import de.dlr.shepard.context.references.spatialdata.daos.SpatialDataReferenceDAO;
10  import de.dlr.shepard.context.references.spatialdata.entities.SpatialDataReference;
11  import java.util.Collections;
12  import java.util.List;
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 SpatialDataReferenceDAOTest extends BaseTestCase {
19  
20    @Mock
21    private Session session;
22  
23    @InjectMocks
24    private SpatialDataReferenceDAO dao;
25  
26    @Test
27    public void getEntityTypeTest() {
28      var type = dao.getEntityType();
29      assertEquals(SpatialDataReference.class, type);
30    }
31  
32    @Test
33    public void findByDataObjectShepardIdTest() {
34      var obj = new DataObject(1L);
35      obj.setShepardId(11L);
36      var obj2 = new DataObject(100L);
37      obj2.setShepardId(1001L);
38      var ref = new SpatialDataReference(2L);
39      ref.setShepardId(21L);
40      var ref2 = new SpatialDataReference(3L);
41      ref2.setShepardId(31L);
42      var ref3 = new SpatialDataReference(4L);
43      ref3.setShepardId(41L);
44      ref.setDataObject(obj);
45      ref2.setDataObject(obj2);
46  
47      var query =
48        """
49        MATCH (d:DataObject {shepardId: 11})-[hr:has_reference]->(r:SpatialDataReference { deleted: FALSE })\
50        MATCH path=(r)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
51        RETURN r, nodes(path), relationships(path)""";
52      when(session.query(SpatialDataReference.class, query, Collections.emptyMap())).thenReturn(List.of(ref, ref2, ref3));
53  
54      var actual = dao.findByDataObjectShepardId(obj.getShepardId());
55      verify(session).query(SpatialDataReference.class, query, Collections.emptyMap());
56      assertEquals(List.of(ref), actual);
57    }
58  }