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.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 }