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.assertFalse;
23 import static org.junit.jupiter.api.Assertions.assertNotNull;
24 import static org.junit.jupiter.api.Assertions.assertTrue;
25
26 import org.apache.syncope.common.lib.to.Item;
27 import org.apache.syncope.common.lib.types.AnyTypeKind;
28 import org.apache.syncope.core.persistence.api.dao.AnyTypeDAO;
29 import org.apache.syncope.core.persistence.api.dao.ExternalResourceDAO;
30 import org.apache.syncope.core.persistence.api.dao.VirSchemaDAO;
31 import org.apache.syncope.core.persistence.api.entity.ExternalResource;
32 import org.apache.syncope.core.persistence.api.entity.VirSchema;
33 import org.apache.syncope.core.persistence.jpa.AbstractTest;
34 import org.junit.jupiter.api.Test;
35 import org.springframework.beans.factory.annotation.Autowired;
36 import org.springframework.transaction.annotation.Transactional;
37
38 @Transactional("Master")
39 public class VirSchemaTest extends AbstractTest {
40
41 @Autowired
42 private VirSchemaDAO virSchemaDAO;
43
44 @Autowired
45 private ExternalResourceDAO resourceDAO;
46
47 @Autowired
48 private AnyTypeDAO anyTypeDAO;
49
50 @Test
51 public void deal() {
52 ExternalResource resource = resourceDAO.find("ws-target-resource-1");
53 assertNotNull(resource);
54 assertTrue(virSchemaDAO.find(resource).isEmpty());
55 assertTrue(virSchemaDAO.find(resource.getKey(), AnyTypeKind.USER.name()).isEmpty());
56
57 VirSchema virSchema = entityFactory.newEntity(VirSchema.class);
58 virSchema.setKey("vSchema");
59 virSchema.setReadonly(true);
60 virSchema.setExtAttrName("EXT_ATTR");
61 virSchema.setResource(resource);
62 virSchema.setAnyType(anyTypeDAO.findUser());
63
64 virSchemaDAO.save(virSchema);
65 entityManager().flush();
66
67 virSchema = virSchemaDAO.find("vSchema");
68 assertNotNull(virSchema);
69 assertTrue(virSchema.isReadonly());
70 assertEquals("EXT_ATTR", virSchema.getExtAttrName());
71
72 assertFalse(virSchemaDAO.find(resource).isEmpty());
73 assertTrue(virSchemaDAO.find(resource).contains(virSchema.getKey()));
74
75 assertFalse(virSchemaDAO.find(resource.getKey(), AnyTypeKind.USER.name()).isEmpty());
76 assertTrue(virSchemaDAO.find(resource.getKey(), AnyTypeKind.USER.name()).contains(virSchema));
77
78 Item item = virSchema.asLinkingMappingItem();
79 assertNotNull(item);
80 assertEquals(virSchema.getKey(), item.getIntAttrName());
81 }
82 }