1 package de.dlr.shepard.auth.permission.io;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4 import static org.junit.jupiter.api.Assertions.assertNull;
5
6 import de.dlr.shepard.auth.permission.model.Permissions;
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.data.file.entities.FileContainer;
11 import java.util.ArrayList;
12 import java.util.Arrays;
13 import java.util.List;
14 import nl.jqno.equalsverifier.EqualsVerifier;
15 import org.junit.jupiter.api.Test;
16
17 public class PermissionsIOTest {
18
19 @Test
20 public void equalsContract() {
21 EqualsVerifier.simple().forClass(PermissionsIO.class).verify();
22 }
23
24 @Test
25 public void testConversion() {
26 var perm = new Permissions(5L);
27 Collection col = new Collection(123L);
28 col.setShepardId(134L);
29 ArrayList<BasicEntity> colList = new ArrayList<BasicEntity>();
30 colList.add(col);
31 perm.setEntities(colList);
32 perm.setOwner(new User("bob"));
33 perm.setReader(List.of(new User("reader")));
34 perm.setWriter(List.of(new User("writer")));
35 perm.setManager(List.of(new User("manager")));
36
37 var converted = new PermissionsIO(perm);
38 assertEquals(col.getShepardId(), converted.getEntityId());
39 assertEquals("bob", converted.getOwner());
40 assertEquals("[reader]", Arrays.toString(converted.getReader()));
41 assertEquals("[writer]", Arrays.toString(converted.getWriter()));
42 assertEquals("[manager]", Arrays.toString(converted.getManager()));
43 }
44
45 @Test
46 public void testConversion_ownerIsNull() {
47 var perm = new Permissions(5L);
48 Collection col = new Collection(123L);
49 col.setShepardId(134L);
50 ArrayList<BasicEntity> colList = new ArrayList<BasicEntity>();
51 colList.add(col);
52 perm.setEntities(colList);
53 perm.setOwner(null);
54
55 var converted = new PermissionsIO(perm);
56 assertEquals(col.getShepardId(), converted.getEntityId());
57 assertNull(converted.getOwner());
58 }
59
60 @Test
61 public void testNoVersionableEntity() {
62 var perm = new Permissions(5L);
63 FileContainer con = new FileContainer(123L);
64 ArrayList<BasicEntity> conList = new ArrayList<BasicEntity>();
65 conList.add(con);
66 perm.setEntities(conList);
67 perm.setOwner(null);
68
69 var converted = new PermissionsIO(perm);
70 assertEquals(con.getId(), converted.getEntityId());
71 assertNull(converted.getOwner());
72 }
73 }