1 package de.dlr.shepard.context.references.file.daos;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 import de.dlr.shepard.auth.security.AuthenticationContext;
6 import de.dlr.shepard.auth.security.JWTPrincipal;
7 import de.dlr.shepard.auth.users.entities.User;
8 import de.dlr.shepard.auth.users.services.UserService;
9 import de.dlr.shepard.context.collection.entities.Collection;
10 import de.dlr.shepard.context.collection.entities.DataObject;
11 import de.dlr.shepard.context.collection.io.CollectionIO;
12 import de.dlr.shepard.context.collection.io.DataObjectIO;
13 import de.dlr.shepard.context.collection.services.CollectionService;
14 import de.dlr.shepard.context.collection.services.DataObjectService;
15 import de.dlr.shepard.context.references.file.entities.FileReference;
16 import de.dlr.shepard.context.references.file.io.FileReferenceIO;
17 import de.dlr.shepard.context.references.file.services.FileReferenceService;
18 import de.dlr.shepard.data.file.entities.FileContainer;
19 import de.dlr.shepard.data.file.io.FileContainerIO;
20 import de.dlr.shepard.data.file.services.FileContainerService;
21 import io.quarkus.test.junit.QuarkusTest;
22 import jakarta.inject.Inject;
23 import jakarta.transaction.Transactional;
24 import java.util.List;
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Order;
27 import org.junit.jupiter.api.Test;
28
29 @QuarkusTest
30 public class FileReferenceDAOQuarkusTest {
31
32 @Inject
33 DataObjectService dataObjectService;
34
35 @Inject
36 CollectionService collectionService;
37
38 @Inject
39 FileContainerService fileContainerService;
40
41 @Inject
42 FileReferenceService fileReferenceService;
43
44 @Inject
45 FileReferenceDAO fileReferenceDAO;
46
47 @Inject
48 AuthenticationContext authenticationContext;
49
50 @Inject
51 UserService userService;
52
53 private DataObject dataObject1;
54 private DataObject dataObject2;
55 private FileContainer fileContainer1;
56 private Collection collection1;
57 private final String userName = "user_" + System.currentTimeMillis();
58 private FileReference fileReference11;
59 private FileReference fileReference12;
60
61 @BeforeEach
62 public void setup() {
63 User user = new User(userName);
64 userService.createOrUpdateUser(user);
65 authenticationContext.setPrincipal(new JWTPrincipal(userName, "key"));
66 CollectionIO collectionIO1 = new CollectionIO();
67 collectionIO1.setName("collection1");
68 collection1 = collectionService.createCollection(collectionIO1);
69 DataObjectIO dataObjectIO1 = new DataObjectIO();
70 dataObjectIO1.setName("dataObject1");
71 dataObject1 = dataObjectService.createDataObject(collection1.getShepardId(), dataObjectIO1);
72 DataObjectIO dataObjectIO2 = new DataObjectIO();
73 dataObjectIO2.setName("dataObject2");
74 dataObject2 = dataObjectService.createDataObject(collection1.getShepardId(), dataObjectIO2);
75 FileContainerIO fileContainerIO1 = new FileContainerIO();
76 fileContainerIO1.setName("fileContainer1");
77 fileContainer1 = fileContainerService.createContainer(fileContainerIO1);
78 FileReferenceIO fileReferenceIO11 = new FileReferenceIO();
79 fileReferenceIO11.setName("fileReference11");
80 fileReferenceIO11.setDataObjectId(dataObject1.getShepardId());
81 fileReferenceIO11.setFileContainerId(fileContainer1.getId());
82 String[] fileOIDs = {};
83 fileReferenceIO11.setFileOids(fileOIDs);
84 fileReference11 = fileReferenceService.createReference(
85 collection1.getShepardId(),
86 dataObject1.getShepardId(),
87 fileReferenceIO11
88 );
89 FileReferenceIO fileReferenceIO12 = new FileReferenceIO();
90 fileReferenceIO12.setName("fileReference12");
91 fileReferenceIO12.setDataObjectId(dataObject1.getShepardId());
92 fileReferenceIO12.setFileContainerId(fileContainer1.getId());
93 fileReferenceIO12.setFileOids(fileOIDs);
94 fileReference12 = fileReferenceService.createReference(
95 collection1.getShepardId(),
96 dataObject1.getShepardId(),
97 fileReferenceIO12
98 );
99 }
100
101 @Test
102 @Order(1)
103 @Transactional
104 public void findByDataObjectNeo4jIdTest() {
105 List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject1.getId());
106 assertEquals(2, actualFileReferences.size());
107 assertEquals(true, actualFileReferences.contains(fileReference11));
108 assertEquals(true, actualFileReferences.contains(fileReference12));
109 }
110
111 @Test
112 @Order(2)
113 @Transactional
114 public void findNothingByDataObjectNeo4jIdTest() {
115 List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject2.getId());
116 assertEquals(0, actualFileReferences.size());
117 }
118
119 @Test
120 @Order(3)
121 @Transactional
122 public void findByDataObjectShepardIdTest() {
123 List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject1.getShepardId());
124 assertEquals(2, actualFileReferences.size());
125 assertEquals(true, actualFileReferences.contains(fileReference11));
126 assertEquals(true, actualFileReferences.contains(fileReference12));
127 }
128
129 @Test
130 @Order(4)
131 @Transactional
132 public void findNothingByDataObjectShepardIdTest() {
133 List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject2.getShepardId());
134 assertEquals(0, actualFileReferences.size());
135 }
136 }