1 package de.dlr.shepard.context.collection.io;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertNull;
5
6 import de.dlr.shepard.auth.users.entities.User;
7 import de.dlr.shepard.context.collection.entities.Collection;
8 import de.dlr.shepard.context.collection.entities.DataObject;
9 import de.dlr.shepard.context.references.dataobject.entities.DataObjectReference;
10 import java.util.Arrays;
11 import java.util.Date;
12 import java.util.List;
13 import java.util.Map;
14 import nl.jqno.equalsverifier.EqualsVerifier;
15 import org.junit.jupiter.api.Test;
16
17 public class DataObjectIOTest {
18
19 @Test
20 public void equalsContract() {
21 EqualsVerifier.simple().forClass(DataObjectIO.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 incoming = new DataObjectReference(7L);
31 incoming.setShepardId(44L);
32 var parent = new DataObject(2L);
33 parent.setShepardId(498L);
34 var child = new DataObject(3L);
35 child.setShepardId(4090L);
36 var suc = new DataObject(4L);
37 suc.setShepardId(96L);
38 var pre = new DataObject(5L);
39 pre.setShepardId(4748L);
40 var col = new Collection(6L);
41 col.setShepardId(366L);
42
43 var obj = new DataObject(1L);
44 obj.setShepardId(98765L);
45 obj.setAttributes(Map.of("a", "b", "c", "1"));
46 obj.setCreatedAt(date);
47 obj.setCreatedBy(user);
48 obj.setDescription("My Description");
49 obj.setIncoming(List.of(incoming));
50 obj.setName("MyName");
51 obj.setUpdatedAt(update);
52 obj.setUpdatedBy(updateUser);
53 obj.setParent(parent);
54 obj.setChildren(List.of(child));
55 obj.setPredecessors(List.of(pre));
56 obj.setSuccessors(List.of(suc));
57 obj.setCollection(col);
58
59 var converted = new DataObjectIO(obj);
60 assertEquals(obj.getShepardId(), converted.getId());
61 assertEquals(obj.getAttributes(), converted.getAttributes());
62 assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
63 assertEquals("bob", converted.getCreatedBy());
64 assertEquals(obj.getDescription(), converted.getDescription());
65 assertEquals("[" + obj.getIncoming().get(0).getShepardId() + "]", Arrays.toString(converted.getIncomingIds()));
66 assertEquals(obj.getName(), converted.getName());
67 assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
68 assertEquals("claus", converted.getUpdatedBy());
69 assertEquals(parent.getShepardId(), converted.getParentId());
70 assertEquals(col.getShepardId(), converted.getCollectionId());
71 assertEquals("[" + obj.getChildren().get(0).getShepardId() + "]", Arrays.toString(converted.getChildrenIds()));
72 assertEquals("[" + obj.getSuccessors().get(0).getShepardId() + "]", Arrays.toString(converted.getSuccessorIds()));
73 assertEquals(
74 "[" + obj.getPredecessors().get(0).getShepardId() + "]",
75 Arrays.toString(converted.getPredecessorIds())
76 );
77 }
78
79 @Test
80 public void testConversionNoParent() {
81 var col = new Collection(2L);
82 col.setShepardId(432L);
83 var obj = new DataObject(1L);
84 obj.setShepardId(38383L);
85 obj.setCollection(col);
86
87 var converted = new DataObjectIO(obj);
88 assertNull(converted.getParentId());
89 }
90 }