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