View Javadoc
1   package de.dlr.shepard.common.neo4j.io;
2   
3   import static org.junit.jupiter.api.Assertions.assertArrayEquals;
4   import static org.junit.jupiter.api.Assertions.assertEquals;
5   import static org.junit.jupiter.api.Assertions.assertNull;
6   
7   import de.dlr.shepard.auth.users.entities.User;
8   import de.dlr.shepard.common.neo4j.entities.BasicEntity;
9   import de.dlr.shepard.context.collection.entities.Collection;
10  import de.dlr.shepard.context.references.basicreference.entities.BasicReference;
11  import de.dlr.shepard.context.version.entities.VersionableEntity;
12  import de.dlr.shepard.data.file.entities.FileContainer;
13  import java.util.Date;
14  import java.util.List;
15  import nl.jqno.equalsverifier.EqualsVerifier;
16  import org.junit.jupiter.api.Test;
17  
18  public class BasicEntityIOTest {
19  
20    private static class EntityIO extends BasicEntityIO {
21  
22      public EntityIO(long id) {
23        this.setId(id);
24      }
25  
26      public EntityIO(BasicEntity entity) {
27        super(entity);
28      }
29    }
30  
31    @Test
32    public void equalsContract() {
33      EqualsVerifier.simple().forClass(BasicEntityIO.class).verify();
34    }
35  
36    @Test
37    public void testConversion() {
38      var date = new Date();
39      var user = new User("bob");
40      var update = new Date();
41      var updateUser = new User("claus");
42  
43      var obj = new FileContainer(1L);
44      obj.setCreatedAt(date);
45      obj.setCreatedBy(user);
46      obj.setUpdatedAt(update);
47      obj.setUpdatedBy(updateUser);
48      obj.setName("test");
49  
50      var converted = new EntityIO(obj);
51      assertEquals(obj.getId(), converted.getId());
52      assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
53      assertEquals("bob", converted.getCreatedBy());
54      assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
55      assertEquals("claus", converted.getUpdatedBy());
56      assertEquals("test", converted.getName());
57    }
58  
59    @Test
60    public void testConversionVersionable() {
61      var date = new Date();
62      var user = new User("bob");
63      var update = new Date();
64      var updateUser = new User("claus");
65  
66      var obj = new BasicReference(1L);
67      obj.setShepardId(2L);
68      obj.setCreatedAt(date);
69      obj.setCreatedBy(user);
70      obj.setName("MyName");
71      obj.setUpdatedAt(update);
72      obj.setUpdatedBy(updateUser);
73  
74      var converted = new EntityIO(obj);
75      assertEquals(obj.getShepardId(), converted.getId());
76      assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
77      assertEquals(obj.getCreatedBy().getUsername(), converted.getCreatedBy());
78      assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
79      assertEquals(obj.getUpdatedBy().getUsername(), converted.getUpdatedBy());
80      assertEquals(obj.getName(), converted.getName());
81    }
82  
83    @Test
84    public void testConversion_userNull() {
85      var obj = new FileContainer(1L);
86  
87      var converted = new EntityIO(obj);
88      assertEquals(obj.getId(), converted.getId());
89      assertNull(converted.getCreatedBy());
90      assertNull(converted.getUpdatedBy());
91    }
92  
93    @Test
94    public void extractIdsTest() {
95      var input = List.of(new Collection(2L), new Collection(5L));
96      var actual = BasicEntityIO.extractIds(input);
97  
98      assertArrayEquals(new long[] { 2, 5 }, actual);
99    }
100 
101   @Test
102   public void extractShepardIdsTest() {
103     var col = new Collection(1L);
104     col.setShepardId(2L);
105     var input = List.of(col);
106     var actual = BasicEntityIO.extractShepardIds(input);
107 
108     assertArrayEquals(new long[] { 2 }, actual);
109   }
110 
111   @Test
112   public void getUniqueIdTest() {
113     var entity = new EntityIO(2L);
114     var actual = entity.getUniqueId();
115 
116     assertEquals("2", actual);
117   }
118 }