ref #9359 upgrade TaxEditor to log4j2
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / taxeditor / session / CdmEntitySessionManagerTest.java
1 package eu.etaxonomy.taxeditor.session;
2
3 import java.util.Iterator;
4 import java.util.List;
5 import java.util.UUID;
6
7 import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
8 import org.junit.Assert;
9 import org.junit.BeforeClass;
10 import org.junit.Test;
11 import org.unitils.dbunit.annotation.DataSet;
12
13 import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
14 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
15 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
16 import eu.etaxonomy.cdm.model.common.CdmBase;
17 import eu.etaxonomy.cdm.model.common.Language;
18 import eu.etaxonomy.cdm.model.common.LanguageString;
19 import eu.etaxonomy.cdm.model.description.KeyStatement;
20 import eu.etaxonomy.cdm.model.description.PolytomousKey;
21 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
22 import eu.etaxonomy.cdm.persistence.dto.MergeResult;
23 import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
24
25 //FIXME:Remoting fix data issue : User#30
26 //@Ignore
27 @DataSet
28 public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
29
30 @SuppressWarnings("unused")
31 private static final Logger logger = LogManager.getLogger(CdmEntitySessionManagerTest.class);
32
33 IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
34 IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
35
36 private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
37 private final Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
38
39 @BeforeClass
40 public static void initializeCdmEntitySessionManagerTest() {
41 }
42
43 @Test
44 public void manageNullSessionTest() {
45
46 PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
47 cdmEntitySessionManager.bind(null);
48 Assert.assertSame(pKey, pKey);
49 Assert.assertNull(getActiveSession());
50 }
51
52 @Test
53 public void manageSessionWithObjectTest() {
54 PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
55
56 Assert.assertNotNull(getActiveSession());
57
58 // FIXME:Remoting fix test of setting root entities
59 //Assert.assertEquals(rootEntities.size(),1);
60 //Assert.assertSame(rootEntities.get(0), pKey);
61
62 String upTitleCache = "Updated Title Cache";
63 String upStatement = "Updated Statement";
64 pKey.setTitleCache(upTitleCache, true);
65
66 PolytomousKeyNode node = pKey.getRoot().getChildAt(0);
67 node.getStatement().getLabel(english).setText(upStatement);
68 polytomousKeyService.merge(pKey, true);
69
70 pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
71
72 Assert.assertEquals(pKey.getTitleCache(), upTitleCache);
73 node = pKey.getRoot().getChildAt(0);
74 KeyStatement statement = node.getStatement();
75 LanguageString label = statement.getLabel(english);
76 Assert.assertEquals(label.getText(), upStatement);
77 }
78
79 @Test
80 public void manageSessionWithListTest() {
81 List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
82 Assert.assertNotNull(getActiveSession());
83
84
85 // FIXME:Remoting fix test of setting root entities
86 //Assert.assertEquals(rootEntities.size(),2);
87 //Assert.assertSame(rootEntities.get(0),pKeys.get(0));
88 //Assert.assertEquals(rootEntities.get(0).getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
89 //Assert.assertSame(rootEntities.get(1),pKeys.get(1));
90 //Assert.assertEquals(rootEntities.get(1).getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
91
92 String upTitleCache = "Updated Title Cache";
93 String upStatement = "Updated Statement";
94 pKeys.get(0).setTitleCache(upTitleCache, true);
95 polytomousKeyService.merge(pKeys.get(0));
96 PolytomousKey key = pKeys.get(1);
97 PolytomousKeyNode root = key.getRoot();
98 root = HibernateProxyHelper.deproxy(root, PolytomousKeyNode.class);
99 PolytomousKeyNode node = root.getChildAt(0);
100 List<PolytomousKeyNode> nodes = root.getChildren();
101 node.getStatement().getLabel(english).setText(upStatement);
102
103 MergeResult<PolytomousKey> result = polytomousKeyService.merge(key, true);
104 key = result.getMergedEntity();
105 pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
106
107 Assert.assertEquals(pKeys.get(0).getTitleCache(), upTitleCache);
108 key = pKeys.get(1);
109 root = key.getRoot();
110 nodes = root.getChildren();
111 Iterator<PolytomousKeyNode> it = nodes.iterator();
112 if (it.hasNext()){
113 node = it.next();
114 } else {
115 Assert.fail();
116 }
117 Assert.assertEquals(node.getStatement().getLabel(english).getText(), upStatement);
118 }
119 }