1 package de.dlr.shepard.context.version.daos;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 import de.dlr.shepard.context.collection.daos.CollectionDAO;
6 import de.dlr.shepard.context.collection.entities.Collection;
7 import de.dlr.shepard.context.collection.services.CollectionService;
8 import io.quarkus.test.junit.QuarkusTest;
9 import jakarta.inject.Inject;
10 import jakarta.transaction.Transactional;
11 import java.util.Collections;
12 import java.util.Iterator;
13 import java.util.UUID;
14 import org.junit.jupiter.api.Test;
15
16 @QuarkusTest
17 public class VersionDAOQuarkusTest {
18
19 @Inject
20 VersionDAO versionDAO;
21
22 @Inject
23 CollectionDAO collectionDAO;
24
25 @Inject
26 CollectionService collectionService;
27
28 @Test
29 @Transactional
30 public void createLinkTest() {
31 UUID collectionNameUUID = UUID.randomUUID();
32 String collectionName = "collection" + collectionNameUUID;
33 UUID versionUUID = UUID.randomUUID();
34 String setUpQuery =
35 "CREATE (v:Version), (c:Collection:VersionableEntity) SET c.name='" +
36 collectionName +
37 "', v.uid='" +
38 versionUUID +
39 "'";
40 versionDAO.runQuery(setUpQuery, Collections.emptyMap());
41 String findCollectionQuery = "MATCH (c:Collection) WHERE c.name='" + collectionName + "' RETURN c";
42 var collections = collectionDAO.findByQuery(findCollectionQuery, Collections.emptyMap());
43 Iterator<Collection> collectionIterator = collections.iterator();
44 Collection collection = collectionIterator.next();
45 long collectionId = collection.getId();
46 versionDAO.createLink(collectionId, versionUUID);
47 String testLinkQuery =
48 "MATCH (ve:VersionableEntity)-[:has_version]->(v:Version) WHERE id(ve)=" +
49 collectionId +
50 " AND v.uid='" +
51 versionUUID +
52 "' RETURN ve";
53 var linkTestmonial = collectionDAO.findByQuery(testLinkQuery, Collections.emptyMap());
54 assertEquals(linkTestmonial.iterator().next().getId(), collectionId);
55 }
56 }