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