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      public EntityIO(VersionableEntity entity) {
31        super(entity);
32      }
33    }
34  
35    @Test
36    public void equalsContract() {
37      EqualsVerifier.simple().forClass(BasicEntityIO.class).verify();
38    }
39  
40    @Test
41    public void testConversion() {
42      var date = new Date();
43      var user = new User("bob");
44      var update = new Date();
45      var updateUser = new User("claus");
46  
47      var obj = new FileContainer(1L);
48      obj.setCreatedAt(date);
49      obj.setCreatedBy(user);
50      obj.setUpdatedAt(update);
51      obj.setUpdatedBy(updateUser);
52      obj.setName("test");
53  
54      var converted = new EntityIO(obj);
55      assertEquals(obj.getId(), converted.getId());
56      assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
57      assertEquals("bob", converted.getCreatedBy());
58      assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
59      assertEquals("claus", converted.getUpdatedBy());
60      assertEquals("test", converted.getName());
61    }
62  
63    @Test
64    public void testConversionVersionable() {
65      var date = new Date();
66      var user = new User("bob");
67      var update = new Date();
68      var updateUser = new User("claus");
69  
70      var obj = new BasicReference(1L);
71      obj.setShepardId(2L);
72      obj.setCreatedAt(date);
73      obj.setCreatedBy(user);
74      obj.setName("MyName");
75      obj.setUpdatedAt(update);
76      obj.setUpdatedBy(updateUser);
77  
78      var converted = new EntityIO(obj);
79      assertEquals(obj.getShepardId(), converted.getId());
80      assertEquals(obj.getCreatedAt(), converted.getCreatedAt());
81      assertEquals(obj.getCreatedBy().getUsername(), converted.getCreatedBy());
82      assertEquals(obj.getUpdatedAt(), converted.getUpdatedAt());
83      assertEquals(obj.getUpdatedBy().getUsername(), converted.getUpdatedBy());
84      assertEquals(obj.getName(), converted.getName());
85    }
86  
87    @Test
88    public void testConversion_userNull() {
89      var obj = new FileContainer(1L);
90  
91      var converted = new EntityIO(obj);
92      assertEquals(obj.getId(), converted.getId());
93      assertNull(converted.getCreatedBy());
94      assertNull(converted.getUpdatedBy());
95    }
96  
97    @Test
98    public void extractIdsTest() {
99      var input = List.of(new Collection(2L), new Collection(5L));
100     var actual = BasicEntityIO.extractIds(input);
101 
102     assertArrayEquals(new long[] { 2, 5 }, actual);
103   }
104 
105   @Test
106   public void extractShepardIdsTest() {
107     var col = new Collection(1L);
108     col.setShepardId(2L);
109     var input = List.of(col);
110     var actual = BasicEntityIO.extractShepardIds(input);
111 
112     assertArrayEquals(new long[] { 2 }, actual);
113   }
114 
115   @Test
116   public void getUniqueIdTest() {
117     var entity = new EntityIO(2L);
118     var actual = entity.getUniqueId();
119 
120     assertEquals("2", actual);
121   }
122 }