Project

General

Profile

Download (4.58 KB) Statistics
| Branch: | Tag: | Revision:
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.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.dao.description.IPolytomousKeyNodeDao;
23
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
24
import eu.etaxonomy.taxeditor.httpinvoker.RemotingSessionAwareTest;
25

    
26
//FIXME:Remoting fix data issue : User#30
27
//@Ignore
28
@DataSet
29
public class CdmEntitySessionManagerTest extends RemotingSessionAwareTest {
30

    
31
	@SuppressWarnings("unused")
32
	private static final Logger logger = Logger.getLogger(CdmEntitySessionManagerTest.class);
33

    
34

    
35
	IPolytomousKeyService polytomousKeyService = getRemoteApplicationController().getPolytomousKeyService();
36
	IPolytomousKeyNodeService polytomousKeyNodeService = getRemoteApplicationController().getPolytomousKeyNodeService();
37

    
38
	private final UUID polytomousKeyUuid = UUID.fromString("0d53ba20-7de4-4baa-bd8a-401048447d66");
39
	private final Language english = Language.getLanguageFromUuid(Language.uuidEnglish);
40

    
41

    
42
	@BeforeClass
43
	public static void initializeCdmEntitySessionManagerTest() {
44
	}
45

    
46

    
47
	@Test
48
	public void manageNullSessionTest() {
49

    
50
		PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
51
		cdmEntitySessionManager.bind(null);
52
		Assert.assertSame(pKey, pKey);
53
		Assert.assertNull(getActiveSession());
54
	}
55

    
56
	@Test
57
	public void manageSessionWithObjectTest() {
58
		PolytomousKey pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
59

    
60
		Assert.assertNotNull(getActiveSession());
61

    
62

    
63
		// FIXME:Remoting fix test of setting root entities
64
		//Assert.assertEquals(rootEntities.size(),1);
65
		//Assert.assertSame(rootEntities.get(0), pKey);
66

    
67
		String upTitleCache = "Updated Title Cache";
68
		String upStatement = "Updated Statement";
69
		pKey.setTitleCache(upTitleCache, true);
70

    
71
		PolytomousKeyNode node = pKey.getRoot().getChildAt(0);
72
		node.getStatement().getLabel(english).setText(upStatement);
73
		polytomousKeyService.merge(pKey, true);
74

    
75
		pKey = CdmBase.deproxy(polytomousKeyService.find(polytomousKeyUuid),PolytomousKey.class);
76

    
77

    
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);
83
	}
84

    
85
	@Test
86
	public void manageSessionWithListTest() {
87
		List<PolytomousKey> pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
88
		Assert.assertNotNull(getActiveSession());
89

    
90

    
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"));
97

    
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);
108
		
109
		MergeResult<PolytomousKey> result = polytomousKeyService.merge(key, true);
110
		key = result.getMergedEntity();
111
		pKeys = polytomousKeyService.list(PolytomousKey.class, null, null, null, null);
112

    
113
		Assert.assertEquals(pKeys.get(0).getTitleCache(), upTitleCache);
114
		key = pKeys.get(1);
115
		root = key.getRoot();
116
		nodes = root.getChildren();
117
		Iterator<PolytomousKeyNode> it = nodes.iterator();
118
		if (it.hasNext()){
119
			node = it.next();
120
		} else {
121
			Assert.fail();
122
		}
123
		Assert.assertEquals(node.getStatement().getLabel(english).getText(), upStatement);
124

    
125
	}
126

    
127
}
(3-3/4)