1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.outer;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertNotNull;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import org.apache.syncope.common.lib.types.AttrSchemaType;
26 import org.apache.syncope.core.persistence.api.dao.AnyTypeClassDAO;
27 import org.apache.syncope.core.persistence.api.dao.PlainSchemaDAO;
28 import org.apache.syncope.core.persistence.api.entity.AnyTypeClass;
29 import org.apache.syncope.core.persistence.api.entity.PlainSchema;
30 import org.apache.syncope.core.persistence.jpa.AbstractTest;
31 import org.junit.jupiter.api.Test;
32 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.transaction.annotation.Transactional;
34
35 @Transactional("Master")
36 public class AnyTypeClassTest extends AbstractTest {
37
38 @Autowired
39 private PlainSchemaDAO plainSchemaDAO;
40
41 @Autowired
42 private AnyTypeClassDAO anyTypeClassDAO;
43
44 @Test
45 public void create() {
46 PlainSchema newSchema = entityFactory.newEntity(PlainSchema.class);
47 newSchema.setKey("new_plain_schema");
48 newSchema.setType(AttrSchemaType.String);
49
50 plainSchemaDAO.save(newSchema);
51
52 entityManager().flush();
53
54 newSchema = plainSchemaDAO.find(newSchema.getKey());
55 assertNotNull(newSchema);
56
57 AnyTypeClass newClass = entityFactory.newEntity(AnyTypeClass.class);
58 newClass.setKey("new class");
59 newClass.add(newSchema);
60
61 anyTypeClassDAO.save(newClass);
62
63 entityManager().flush();
64
65 newClass = anyTypeClassDAO.find(newClass.getKey());
66 assertNotNull(newClass);
67 assertEquals(1, newClass.getPlainSchemas().size());
68 assertEquals(newSchema, newClass.getPlainSchemas().get(0));
69 assertEquals(newClass, newClass.getPlainSchemas().get(0).getAnyTypeClass());
70
71 newSchema = plainSchemaDAO.find(newSchema.getKey());
72 assertNotNull(newSchema.getAnyTypeClass());
73 }
74
75 @Test
76 public void delete() {
77 AnyTypeClass minimalUser = anyTypeClassDAO.find("minimal user");
78 assertNotNull(minimalUser);
79
80 PlainSchema surname = plainSchemaDAO.find("surname");
81 assertNotNull(surname);
82 assertTrue(minimalUser.getPlainSchemas().contains(surname));
83 int before = minimalUser.getPlainSchemas().size();
84
85 plainSchemaDAO.delete("surname");
86
87 entityManager().flush();
88
89 minimalUser = anyTypeClassDAO.find("minimal user");
90 assertNotNull(minimalUser);
91 assertEquals(before, minimalUser.getPlainSchemas().size() + 1);
92 }
93 }