1 package eu
.etaxonomy
.taxeditor
.session
;
6 import org
.apache
.log4j
.Logger
;
7 import org
.junit
.Assert
;
8 import org
.junit
.Before
;
9 import org
.junit
.BeforeClass
;
10 import org
.junit
.Test
;
13 import eu
.etaxonomy
.cdm
.api
.service
.IPolytomousKeyService
;
14 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
15 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
16 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
17 import eu
.etaxonomy
.cdm
.model
.name
.NomenclaturalCode
;
18 import eu
.etaxonomy
.taxeditor
.httpinvoker
.BaseRemotingTest
;
19 import eu
.etaxonomy
.taxeditor
.httpinvoker
.CDMServer
;
20 import eu
.etaxonomy
.taxeditor
.session
.CdmEntitySessionManager
;
21 import eu
.etaxonomy
.taxeditor
.session
.ISessionEventListener
;
23 public class CdmEntitySessionManagerTest
extends BaseRemotingTest
{
25 private static final Logger logger
= Logger
.getLogger(CdmEntitySessionManagerTest
.class);
27 private ISessionEventListener sessionOwner
;
28 private ICdmEntitySessionManager cdmEntitySessionManager
= getRemoteApplicationController().getCdmEntitySessionManager();
29 IPolytomousKeyService polytomousKeyService
= getRemoteApplicationController().getPolytomousKeyService();
31 private UUID polytomousKeyUuid
= UUID
.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
32 private Language english
= Language
.getLanguageFromUuid(Language
.uuidEnglish
);
35 public static void initializeCdmEntitySessionManagerTest() {
36 CDMServer
.getInstance().setKeepServerRunning(true);
37 //initializeController("default", "127.0.0.1", 8080, "", NomenclaturalCode.ICNAFP);
41 public void initializeSession() {
42 sessionOwner
= new MockSessionOwner();
43 cdmEntitySessionManager
.bind(sessionOwner
);
48 public void manageNullSessionTest() {
50 PolytomousKey pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
51 cdmEntitySessionManager
.bind(null);
52 PolytomousKey pKeyLoaded
= cdmEntitySessionManager
.load(pKey
);
53 Assert
.assertSame(pKeyLoaded
, pKey
);
54 Assert
.assertNull(cdmEntitySessionManager
.getActiveSession());
58 public void manageSessionWithObjectTest() {
59 PolytomousKey pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
60 pKey
= cdmEntitySessionManager
.load(sessionOwner
, pKey
);
61 Assert
.assertNotNull(cdmEntitySessionManager
.getActiveSession());
62 List
<CdmBase
> rootEntities
= (List
<CdmBase
>)getFieldValueViaReflection(cdmEntitySessionManager
.getActiveSession(), "rootEntities");
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 pKey
.getRoot().getChildAt(0).getStatement().getLabel(english
).setText(upStatement
);
72 polytomousKeyService
.merge(pKey
);
74 sessionOwner
= new MockSessionOwner();
75 pKey
= CdmBase
.deproxy(polytomousKeyService
.find(polytomousKeyUuid
),PolytomousKey
.class);
76 pKey
= cdmEntitySessionManager
.load(sessionOwner
, pKey
);
78 Assert
.assertEquals(pKey
.getTitleCache(), upTitleCache
);
79 Assert
.assertEquals(pKey
.getRoot().getChildAt(0).getStatement().getLabel(english
).getText(), upStatement
);
83 public void manageSessionWithListTest() {
84 List
<PolytomousKey
> pKeys
= polytomousKeyService
.list(PolytomousKey
.class, null, null, null, null);
85 pKeys
= (List
<PolytomousKey
>) cdmEntitySessionManager
.load(sessionOwner
, pKeys
);
86 Assert
.assertNotNull(cdmEntitySessionManager
.getActiveSession());
87 List
<CdmBase
> rootEntities
= (List
<CdmBase
>)getFieldValueViaReflection(cdmEntitySessionManager
.getActiveSession(), "rootEntities");
89 Assert
.assertEquals(rootEntities
.size(),2);
90 Assert
.assertSame(rootEntities
.get(0),pKeys
.get(0));
91 Assert
.assertEquals(rootEntities
.get(0).getUuid(),UUID
.fromString("9d8bf4f6-a70a-4b80-8556-2ccfb436ff01"));
93 Assert
.assertSame(rootEntities
.get(1),pKeys
.get(1));
94 Assert
.assertEquals(rootEntities
.get(1).getUuid(),UUID
.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66"));
96 String upTitleCache
= "Updated Title Cache";
97 String upStatement
= "Updated Statement";
98 pKeys
.get(0).setTitleCache(upTitleCache
, true);
99 polytomousKeyService
.merge(pKeys
.get(0));
100 pKeys
.get(1).getRoot().getChildAt(0).getStatement().getLabel(english
).setText(upStatement
);
101 polytomousKeyService
.merge(pKeys
.get(1));
103 sessionOwner
= new MockSessionOwner();
104 pKeys
= polytomousKeyService
.list(PolytomousKey
.class, null, null, null, null);
105 pKeys
= (List
<PolytomousKey
>) cdmEntitySessionManager
.load(sessionOwner
, pKeys
);
106 Assert
.assertEquals(pKeys
.get(0).getTitleCache(), upTitleCache
);
107 Assert
.assertEquals(pKeys
.get(1).getRoot().getChildAt(0).getStatement().getLabel(english
).getText(), upStatement
);