1 package de.dlr.shepard.context.references.structureddata.io;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertTrue;
5
6 import de.dlr.shepard.auth.users.entities.User;
7 import de.dlr.shepard.context.collection.entities.DataObject;
8 import de.dlr.shepard.context.references.structureddata.entities.StructuredDataReference;
9 import de.dlr.shepard.data.structureddata.entities.StructuredData;
10 import de.dlr.shepard.data.structureddata.entities.StructuredDataContainer;
11 import java.util.Arrays;
12 import java.util.Date;
13 import java.util.List;
14 import nl.jqno.equalsverifier.EqualsVerifier;
15 import org.junit.jupiter.api.Test;
16
17 public class StructuredDataReferenceIOTest {
18
19 @Test
20 public void equalsContract() {
21 EqualsVerifier.simple().forClass(StructuredDataReferenceIO.class).verify();
22 }
23
24 @Test
25 public void testConversion() {
26 var date = new Date();
27 var user = new User("bob");
28 var update = new Date();
29 var updateUser = new User("claus");
30 var dataObject = new DataObject(2L);
31 dataObject.setShepardId(22L);
32 var container = new StructuredDataContainer(3L);
33 var structuredData = new StructuredData("oid", new Date(), "name");
34
35 var obj = new StructuredDataReference(1L);
36 obj.setShepardId(123L);
37 obj.setCreatedAt(date);
38 obj.setCreatedBy(user);
39 obj.setName("MyName");
40 obj.setUpdatedAt(update);
41 obj.setUpdatedBy(updateUser);
42 obj.setDataObject(dataObject);
43 obj.setStructuredDataContainer(container);
44 obj.setStructuredDatas(List.of(structuredData));
45 String[] oids = obj.getStructuredDatas().stream().map(StructuredData::getOid).toArray(String[]::new);
46
47 var converted = new StructuredDataReferenceIO(obj);
48 assertEquals(obj.getShepardId(), converted.getId());
49 assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
50 assertEquals("bob", converted.getCreatedBy());
51 assertEquals(obj.getName(), converted.getName());
52 assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
53 assertEquals("claus", converted.getUpdatedBy());
54 assertEquals(dataObject.getShepardId(), converted.getDataObjectId());
55 assertEquals(container.getId(), converted.getStructuredDataContainerId());
56 assertTrue(Arrays.equals(oids, converted.getStructuredDataOids()));
57 }
58
59 @Test
60 public void testConversion_ContainerNull() {
61 var date = new Date();
62 var user = new User("bob");
63 var dataObject = new DataObject(2L);
64 dataObject.setShepardId(123L);
65 var structuredData = new StructuredData("oid", new Date(), "name");
66
67 var obj = new StructuredDataReference(1L);
68 obj.setShepardId(22L);
69 obj.setCreatedAt(date);
70 obj.setCreatedBy(user);
71 obj.setName("MyName");
72 obj.setDataObject(dataObject);
73 obj.setStructuredDatas(List.of(structuredData));
74 String[] oids = obj.getStructuredDatas().stream().map(StructuredData::getOid).toArray(String[]::new);
75
76 var converted = new StructuredDataReferenceIO(obj);
77 assertEquals(obj.getShepardId(), converted.getId());
78 assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
79 assertEquals("bob", converted.getCreatedBy());
80 assertEquals(obj.getName(), converted.getName());
81 assertEquals(dataObject.getShepardId(), converted.getDataObjectId());
82 assertEquals(-1, converted.getStructuredDataContainerId());
83 assertTrue(Arrays.equals(oids, converted.getStructuredDataOids()));
84 }
85 }