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 }