1 package de.dlr.shepard.auth.permission.model;
2
3 import static org.junit.jupiter.api.Assertions.assertEquals;
4
5 import de.dlr.shepard.BaseTestCase;
6 import de.dlr.shepard.auth.users.entities.User;
7 import de.dlr.shepard.auth.users.entities.UserGroup;
8 import de.dlr.shepard.common.neo4j.entities.BasicEntity;
9 import de.dlr.shepard.common.util.PermissionType;
10 import de.dlr.shepard.context.collection.entities.Collection;
11 import de.dlr.shepard.context.semantic.entities.SemanticAnnotation;
12 import java.util.ArrayList;
13 import java.util.List;
14 import nl.jqno.equalsverifier.EqualsVerifier;
15 import org.junit.jupiter.api.Test;
16
17 public class PermissionsTest extends BaseTestCase {
18
19 @Test
20 public void equalsContract() {
21 EqualsVerifier.simple()
22 .forClass(Permissions.class)
23 .withPrefabValues(User.class, new User("bob"), new User("claus"))
24 .withPrefabValues(UserGroup.class, new UserGroup(1L), new UserGroup(2L))
25 .withPrefabValues(BasicEntity.class, new Collection(5L), new Collection(6L))
26 .withPrefabValues(SemanticAnnotation.class, new SemanticAnnotation(1L), new SemanticAnnotation(2L))
27 .verify();
28 }
29
30 @Test
31 public void constructorTest() {
32 User owner = new User("bob");
33 List<User> reader = List.of(new User("reader"));
34 List<User> writer = List.of(new User("reader"));
35 List<User> manager = List.of(new User("reader"));
36 List<UserGroup> readerGroups = List.of(new UserGroup(1L));
37 List<UserGroup> writerGroups = List.of(new UserGroup(2L));
38 Permissions expected = new Permissions() {
39 {
40 setOwner(owner);
41 setReader(reader);
42 setWriter(writer);
43 setReaderGroups(readerGroups);
44 setWriterGroups(writerGroups);
45 setManager(manager);
46 setPermissionType(PermissionType.PublicReadable);
47 }
48 };
49 Permissions actual = new Permissions(
50 owner,
51 reader,
52 writer,
53 readerGroups,
54 writerGroups,
55 manager,
56 PermissionType.PublicReadable
57 );
58
59 assertEquals(expected, actual);
60 }
61
62 @Test
63 public void entityConstructorTest() {
64 var entity = new Collection(1L);
65 ArrayList<BasicEntity> entities = new ArrayList<BasicEntity>();
66 entities.add(entity);
67 var user = new User("bob");
68 var expected = new Permissions() {
69 {
70 setEntities(entities);
71 setOwner(user);
72 setPermissionType(PermissionType.Public);
73 }
74 };
75 var actual = new Permissions(entity, user, PermissionType.Public);
76
77 assertEquals(expected, actual);
78 }
79
80 @Test
81 public void getUniqueIdTest() {
82 var perm = new Permissions(5L);
83 assertEquals("5", perm.getUniqueId());
84 }
85
86 @Test
87 public void simpleConstructorTest() {
88 var perm1 = new Permissions();
89 perm1.setId(5L);
90 var perm2 = new Permissions(5L);
91 assertEquals(perm1, perm2);
92 }
93 }