View Javadoc
1   package de.dlr.shepard.context.export;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.junit.jupiter.api.Assertions.assertNotNull;
5   
6   import de.dlr.shepard.auth.users.entities.User;
7   import de.dlr.shepard.common.util.DateHelper;
8   import de.dlr.shepard.context.collection.entities.Collection;
9   import de.dlr.shepard.context.collection.entities.DataObject;
10  import de.dlr.shepard.context.references.basicreference.entities.BasicReference;
11  import de.dlr.shepard.context.references.basicreference.io.BasicReferenceIO;
12  import io.quarkus.test.component.QuarkusComponentTest;
13  import jakarta.inject.Inject;
14  import java.io.IOException;
15  import org.junit.jupiter.api.Test;
16  
17  @QuarkusComponentTest
18  public class ExportBuilderTest {
19  
20    @Inject
21    DateHelper dateHelper;
22  
23    @Test
24    public void testConstructor() throws IOException {
25      var user = new User("bob");
26      var collection = getCollection(user);
27      var builder = new ExportBuilder(collection);
28      var crate = builder.getRoCrateBuilder().build();
29      var entity = crate.getDataEntityById("2.json");
30      assertEquals("Collection Name", entity.getProperty("name").asText());
31    }
32  
33    @Test
34    public void testAddDataObject() throws IOException {
35      var user = new User("bob");
36      var collection = getCollection(user);
37      var builder = new ExportBuilder(collection);
38  
39      var dataObject = getDataObject(user, collection);
40      builder.addDataObject(dataObject);
41  
42      var crate = builder.getRoCrateBuilder().build();
43      var entity = crate.getDataEntityById("3.json");
44      assertEquals("DataObject Name", entity.getProperty("name").asText());
45    }
46  
47    @Test
48    public void testAddReference() throws IOException {
49      var user = new User("bob");
50      var collection = getCollection(user);
51      var dataObject = getDataObject(user, collection);
52      var builder = new ExportBuilder(collection);
53  
54      var reference = getReference(user, dataObject);
55      builder.addReference(new BasicReferenceIO(reference), user);
56  
57      var crate = builder.getRoCrateBuilder().build();
58      var entity = crate.getDataEntityById("4.json");
59      assertEquals("Reference Name", entity.getProperty("name").asText());
60    }
61  
62    @Test
63    public void testAddPayload_bytes() throws IOException {
64      var user = new User("bob");
65      var collection = getCollection(user);
66      var builder = new ExportBuilder(collection);
67  
68      byte[] bytes = new byte[0];
69      builder.addPayload(bytes, "file", "name");
70  
71      var crate = builder.getRoCrateBuilder().build();
72      var entity = crate.getEntityById("file");
73      assertEquals("name", entity.getProperty("name").asText());
74    }
75  
76    @Test
77    public void testAddPayload_bytesPlusFormat() throws IOException {
78      var user = new User("bob");
79      var collection = getCollection(user);
80      var builder = new ExportBuilder(collection);
81  
82      var bytes = new byte[0];
83      builder.addPayload(bytes, "file", "name", "text/csv");
84  
85      var crate = builder.getRoCrateBuilder().build();
86      var entity = crate.getEntityById("file");
87      assertEquals("name", entity.getProperty("name").asText());
88      assertEquals("text/csv", entity.getProperty("encodingFormat").asText());
89    }
90  
91    @Test
92    public void testBuild() throws IOException {
93      var user = new User("bob");
94      var collection = getCollection(user);
95      var builder = new ExportBuilder(collection);
96  
97      assertNotNull(builder.build());
98    }
99  
100   private Collection getCollection(User user) {
101     var collection = new Collection() {
102       {
103         setId(2L);
104         setShepardId(2L);
105         setName("Collection Name");
106         setDescription("Desc");
107         setCreatedAt(dateHelper.getDate());
108         setCreatedBy(user);
109       }
110     };
111     return collection;
112   }
113 
114   private DataObject getDataObject(User user, Collection collection) {
115     var dataObject = new DataObject() {
116       {
117         setId(3L);
118         setShepardId(3L);
119         setName("DataObject Name");
120         setCreatedAt(dateHelper.getDate());
121         setUpdatedAt(dateHelper.getDate());
122         setCollection(collection);
123       }
124     };
125     return dataObject;
126   }
127 
128   private BasicReference getReference(User user, DataObject dataObject) {
129     var reference = new BasicReference() {
130       {
131         setId(4L);
132         setShepardId(4L);
133         setName("Reference Name");
134         setCreatedAt(dateHelper.getDate());
135         setCreatedBy(user);
136         setDataObject(dataObject);
137       }
138     };
139     return reference;
140   }
141 }