View Javadoc
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.MethodOrderer;
27  import org.junit.jupiter.api.Order;
28  import org.junit.jupiter.api.Test;
29  import org.junit.jupiter.api.TestMethodOrder;
30  
31  @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
32  @QuarkusTest
33  public class FileReferenceDAOQuarkusTest {
34  
35    @Inject
36    DataObjectService dataObjectService;
37  
38    @Inject
39    CollectionService collectionService;
40  
41    @Inject
42    FileContainerService fileContainerService;
43  
44    @Inject
45    FileReferenceService fileReferenceService;
46  
47    @Inject
48    FileReferenceDAO fileReferenceDAO;
49  
50    @Inject
51    AuthenticationContext authenticationContext;
52  
53    @Inject
54    UserService userService;
55  
56    private DataObject dataObject1;
57    private DataObject dataObject2;
58    private FileContainer fileContainer1;
59    private Collection collection1;
60    private final String userName = "user_" + System.currentTimeMillis();
61    private FileReference fileReference11;
62    private FileReference fileReference12;
63  
64    @BeforeEach
65    public void setup() {
66      User user = new User(userName);
67      userService.createOrUpdateUser(user);
68      authenticationContext.setPrincipal(new JWTPrincipal(userName, "key"));
69      CollectionIO collectionIO1 = new CollectionIO();
70      collectionIO1.setName("collection1");
71      collection1 = collectionService.createCollection(collectionIO1);
72      DataObjectIO dataObjectIO1 = new DataObjectIO();
73      dataObjectIO1.setName("dataObject1");
74      dataObject1 = dataObjectService.createDataObject(collection1.getShepardId(), dataObjectIO1);
75      DataObjectIO dataObjectIO2 = new DataObjectIO();
76      dataObjectIO2.setName("dataObject2");
77      dataObject2 = dataObjectService.createDataObject(collection1.getShepardId(), dataObjectIO2);
78      FileContainerIO fileContainerIO1 = new FileContainerIO();
79      fileContainerIO1.setName("fileContainer1");
80      fileContainer1 = fileContainerService.createContainer(fileContainerIO1);
81      FileReferenceIO fileReferenceIO11 = new FileReferenceIO();
82      fileReferenceIO11.setName("fileReference11");
83      fileReferenceIO11.setDataObjectId(dataObject1.getShepardId());
84      fileReferenceIO11.setFileContainerId(fileContainer1.getId());
85      String[] fileOIDs = {};
86      fileReferenceIO11.setFileOids(fileOIDs);
87      fileReference11 = fileReferenceService.createReference(
88        collection1.getShepardId(),
89        dataObject1.getShepardId(),
90        fileReferenceIO11
91      );
92      FileReferenceIO fileReferenceIO12 = new FileReferenceIO();
93      fileReferenceIO12.setName("fileReference12");
94      fileReferenceIO12.setDataObjectId(dataObject1.getShepardId());
95      fileReferenceIO12.setFileContainerId(fileContainer1.getId());
96      fileReferenceIO12.setFileOids(fileOIDs);
97      fileReference12 = fileReferenceService.createReference(
98        collection1.getShepardId(),
99        dataObject1.getShepardId(),
100       fileReferenceIO12
101     );
102   }
103 
104   @Test
105   @Order(1)
106   @Transactional
107   public void findByDataObjectNeo4jIdTest() {
108     List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject1.getId());
109     assertEquals(2, actualFileReferences.size());
110     assertEquals(true, actualFileReferences.contains(fileReference11));
111     assertEquals(true, actualFileReferences.contains(fileReference12));
112   }
113 
114   @Test
115   @Order(2)
116   @Transactional
117   public void findNothingByDataObjectNeo4jIdTest() {
118     List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject2.getId());
119     assertEquals(0, actualFileReferences.size());
120   }
121 
122   @Test
123   @Order(3)
124   @Transactional
125   public void findByDataObjectShepardIdTest() {
126     List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject1.getShepardId());
127     assertEquals(2, actualFileReferences.size());
128     assertEquals(true, actualFileReferences.contains(fileReference11));
129     assertEquals(true, actualFileReferences.contains(fileReference12));
130   }
131 
132   @Test
133   @Order(4)
134   @Transactional
135   public void findNothingByDataObjectShepardIdTest() {
136     List<FileReference> actualFileReferences = fileReferenceDAO.findByDataObjectNeo4jId(dataObject2.getShepardId());
137     assertEquals(0, actualFileReferences.size());
138   }
139 }