1 package eu
.etaxonomy
.taxeditor
.session
;
3 import java
.util
.Iterator
;
7 import org
.apache
.log4j
.Logger
;
8 import org
.junit
.Assert
;
9 import org
.junit
.BeforeClass
;
10 import org
.junit
.Test
;
11 import org
.unitils
.dbunit
.annotation
.DataSet
;
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
.dao
.description
.IPolytomousKeyNodeDao
;
23 import eu
.etaxonomy
.cdm
.persistence
.dto
.MergeResult
;
24 import eu
.etaxonomy
.taxeditor
.httpinvoker
.RemotingSessionAwareTest
;
26 //FIXME:Remoting fix data issue : User#30
29 public class CdmEntitySessionManagerTest
extends RemotingSessionAwareTest
{
31 @SuppressWarnings("unused")
32 private static final Logger logger
= Logger
.getLogger(CdmEntitySessionManagerTest
.class);
35 IPolytomousKeyService polytomousKeyService
= getRemoteApplicationController().getPolytomousKeyService();
36 IPolytomousKeyNodeService polytomousKeyNodeService
= getRemoteApplicationController().getPolytomousKeyNodeService();
38 private final UUID polytomousKeyUuid
= UUID
.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
39 private final Language english
= Language
.getLanguageFromUuid(Language
.uuidEnglish
);
43 public static void initializeCdmEntitySessionManagerTest() {
48 public void manageNullSessionTest() {
50 PolytomousKey pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
51 cdmEntitySessionManager
.bind(null);
52 Assert
.assertSame(pKey
, pKey
);
53 Assert
.assertNull(getActiveSession());
57 public void manageSessionWithObjectTest() {
58 PolytomousKey pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
60 Assert
.assertNotNull(getActiveSession());
63 // FIXME:Remoting fix test of setting root entities
64 //Assert.assertEquals(rootEntities.size(),1);
65 //Assert.assertSame(rootEntities.get(0), pKey);
67 String upTitleCache
= "Updated Title Cache";
68 String upStatement
= "Updated Statement";
69 pKey
.setTitleCache(upTitleCache
, true);
71 PolytomousKeyNode node
= pKey
.getRoot().getChildAt(0);
72 node
.getStatement().getLabel(english
).setText(upStatement
);
73 polytomousKeyService
.merge(pKey
, true);
75 pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
78 Assert
.assertEquals(pKey
.getTitleCache(), upTitleCache
);
79 node
= pKey
.getRoot().getChildAt(0);
80 KeyStatement statement
= node
.getStatement();
81 LanguageString label
= statement
.getLabel(english
);
82 Assert
.assertEquals(label
.getText(), upStatement
);
86 public void manageSessionWithListTest() {
87 List
<PolytomousKey
> pKeys
= polytomousKeyService
.list(PolytomousKey
.class, null, null, null, null);
88 Assert
.assertNotNull(getActiveSession());
91 // FIXME:Remoting fix test of setting root entities
92 //Assert.assertEquals(rootEntities.size(),2);
93 //Assert.assertSame(rootEntities.get(0),pKeys.get(0));
94 //Assert.assertEquals(rootEntities.get(0).getUuid(),UUID.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
95 //Assert.assertSame(rootEntities.get(1),pKeys.get(1));
96 //Assert.assertEquals(rootEntities.get(1).getUuid(),UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
98 String upTitleCache
= "Updated Title Cache";
99 String upStatement
= "Updated Statement";
100 pKeys
.get(0).setTitleCache(upTitleCache
, true);
101 polytomousKeyService
.merge(pKeys
.get(0));
102 PolytomousKey key
= pKeys
.get(1);
103 PolytomousKeyNode root
= key
.getRoot();
104 root
= HibernateProxyHelper
.deproxy(root
, PolytomousKeyNode
.class);
105 PolytomousKeyNode node
= root
.getChildAt(0);
106 List
<PolytomousKeyNode
> nodes
= root
.getChildren();
107 node
.getStatement().getLabel(english
).setText(upStatement
);
109 MergeResult
<PolytomousKey
> result
= polytomousKeyService
.merge(key
, true);
110 key
= result
.getMergedEntity();
111 pKeys
= polytomousKeyService
.list(PolytomousKey
.class, null, null, null, null);
113 Assert
.assertEquals(pKeys
.get(0).getTitleCache(), upTitleCache
);
115 root
= key
.getRoot();
116 nodes
= root
.getChildren();
117 Iterator
<PolytomousKeyNode
> it
= nodes
.iterator();
123 Assert
.assertEquals(node
.getStatement().getLabel(english
).getText(), upStatement
);