View Javadoc
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  }