1 package de.dlr.shepard.data.file.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.file.entities.ShepardFile;
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 ShepardFileDAOTest extends BaseTestCase {
19
20 @Mock
21 private Session session;
22
23 @InjectMocks
24 private ShepardFileDAO dao = new ShepardFileDAO();
25
26 @Test
27 public void findTest() {
28 var f = new ShepardFile("oid", new Date(), "filename", "md5");
29 var query =
30 """
31 MATCH (c:FileContainer)-[:file_in_container]->(f:ShepardFile {oid: $oid}) \
32 WHERE ID(c)=123 MATCH path=(f)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
33 RETURN f, nodes(path), relationships(path)""";
34
35 when(session.query(ShepardFile.class, query, Map.of("oid", "oid"))).thenReturn(List.of(f));
36 var actual = dao.find(123L, "oid");
37 assertEquals(f, actual);
38 }
39
40 @Test
41 public void findTest_notFound() {
42 var query =
43 """
44 MATCH (c:FileContainer)-[:file_in_container]->(f:ShepardFile {oid: $oid}) \
45 WHERE ID(c)=123 MATCH path=(f)-[*0..1]-(n) WHERE n.deleted = FALSE OR n.deleted IS NULL \
46 RETURN f, nodes(path), relationships(path)""";
47
48 when(session.query(ShepardFile.class, query, Map.of("oid", "oid"))).thenReturn(Collections.emptyList());
49 var actual = dao.find(123L, "oid");
50 assertNull(actual);
51 }
52 }