Project

General

Profile

Download (8.26 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.model.description;
11

    
12
import static org.junit.Assert.assertEquals;
13
import static org.junit.Assert.assertNotNull;
14
import static org.junit.Assert.assertNotSame;
15
import static org.junit.Assert.assertNull;
16
import static org.junit.Assert.assertSame;
17

    
18
import java.util.Arrays;
19
import java.util.List;
20

    
21
import org.apache.log4j.Logger;
22
import org.junit.Before;
23
import org.junit.Test;
24

    
25
import eu.etaxonomy.cdm.model.common.Language;
26
import eu.etaxonomy.cdm.model.common.LanguageString;
27
import eu.etaxonomy.cdm.model.common.MultilanguageText;
28
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
29

    
30
/**
31
 * @author a.mueller
32
 * @since 23.04.2008
33
 */
34
public class TextDataTest extends EntityTestBase {
35

    
36
    @SuppressWarnings("unused")
37
	private static Logger logger = Logger.getLogger(TextDataTest.class);
38

    
39
	private TextData textDataLeer;
40
	private TextData textData1;
41
	private TextFormat format1;
42
	private LanguageString languageString1;
43

    
44
	@Before
45
	public void setUp() throws Exception {
46
		textDataLeer = TextData.NewInstance();
47
		format1 = TextFormat.NewInstance();
48
		textData1 = TextData.NewInstance("testText", Language.DEFAULT(), format1);
49
		languageString1 = LanguageString.NewInstance("langText", Language.GERMAN());
50
	}
51

    
52
/* ************************** TESTS **********************************************************/
53

    
54
	@Test
55
	public void testNewInstance() {
56
		assertNotNull(textDataLeer);
57
		assertNotNull(textDataLeer.getMultilanguageText());
58
		assertEquals(0, textDataLeer.size());
59
		assertEquals(0, textDataLeer.countLanguages());
60
		assertNull(textDataLeer.getFormat());
61
	}
62

    
63
	@Test
64
	public void testNewInstanceStringLanguageTextFormat() {
65
		assertNotNull(textData1);
66
		assertNotNull(textData1.getMultilanguageText());
67
		assertEquals(1, textData1.size());
68
		assertEquals(1, textData1.countLanguages());
69
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
70
		assertNotNull(textData1.getFormat());
71
		assertSame(format1, textData1.getFormat());
72
	}
73

    
74
	@Test
75
	public void testTextData() {
76
		textDataLeer = new TextData();
77
		assertNotNull(textDataLeer);
78
		assertNotNull(textDataLeer.getMultilanguageText());
79
		assertEquals(0, textDataLeer.getMultilanguageText().size());
80
		assertEquals(0, textDataLeer.countLanguages());
81
		assertNull(textDataLeer.getFormat());
82
	}
83

    
84
	@Test
85
	public void testGetText() {
86
		assertNotNull(textData1.getText(Language.DEFAULT()));
87
		assertNull(textDataLeer.getText(Language.DEFAULT()));
88
	}
89

    
90
	@Test
91
	public void testGetMultilanguageText() {
92
		assertNotNull(textData1.getMultilanguageText());
93
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
94
		assertNotNull(textDataLeer.getMultilanguageText());
95
//		assertNull(textDataLeer.getMultilanguageText().getText(Language.DEFAULT()));
96
		assertEquals(0, textDataLeer.getMultilanguageText().size());
97
	}
98

    
99
	/**
100
	 * This test reproduces a bug in java runtime.
101
	 * The HashMap used to implement the MultilanguageText fails in jre1.6_11 b03 win32 to
102
	 * to find existing Language keys.
103
	 * FIXME this test fails to reproduce the bug -> integration test needed?
104
	 */
105
	@Test
106
	public void testPreferredLanguageString() {
107
		//FIXME move to integration test: List<Language> languages = termService.getLanguagesByLocale(locales.elements());
108
		List<Language> preferredLanguages = Arrays.asList(new Language[]{Language.DEFAULT()});
109
		assertNotNull(textData1.getPreferredLanguageString(preferredLanguages));
110
	}
111

    
112
//	/**
113
//	 *
114
//	Test method for {@link eu.etaxonomy.cdm.model.description.TextData#setMultilanguageText()}.
115
//	 */
116
//	@Test
117
//	public void testSetMultilanguageText() {
118
//		MultilanguageText multilanguageText = MultilanguageText.NewInstance();
119
//		assertFalse(multilanguageText.equals(textData1.getMultilanguageText()));
120
//		Map<Language, LanguageString> texts = textData1.getMultilanguageText();
121
//		LanguageString text = texts.get(Language.DEFAULT());
122
//		text.setText("This is a test");
123
//		textData1.getMultilanguageText().clear();
124
//		assertNotNull(textData1.getMultilanguageText());
125
//		assertEquals(0, textData1.getMultilanguageText().size());
126
//	}
127

    
128
	/**
129
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#addText(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
130
	 */
131
	@Test
132
	public void testPutTextStringLanguage() {
133
		textDataLeer.putText(Language.GERMAN(), "xx");
134
		assertEquals(textDataLeer.putText(Language.FRENCH(), "francais").getLanguage(), Language.FRENCH());
135
		textDataLeer.putText(null, "nothing");
136
		textDataLeer.putText(Language.CHINESE(), null);
137
		assertEquals(4 , textDataLeer.size());
138
		assertEquals("deutsch", textDataLeer.putText(Language.GERMAN(), "deutsch").getText());
139
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
140
		assertEquals("deutsch", textDataLeer.getText(Language.GERMAN()));
141
		assertEquals("francais", textDataLeer.getText(Language.FRENCH()));
142
		assertEquals("nothing", textDataLeer.getText(null));
143
		assertEquals(null, textDataLeer.getText(Language.CHINESE()));
144
	}
145

    
146
	@Test
147
	public void testPutTextLanguageString() {
148
		LanguageString deutsch = LanguageString.NewInstance("xx", Language.GERMAN());
149
		textDataLeer.putText(deutsch);
150
		assertNull(textDataLeer.putText(LanguageString.NewInstance("francais", Language.FRENCH())));
151
		textDataLeer.putText(LanguageString.NewInstance("nothing", null));
152
		textDataLeer.putText(LanguageString.NewInstance(null, Language.CHINESE()));
153
		assertNotNull(textDataLeer.getMultilanguageText());
154
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
155
		assertEquals(deutsch, textDataLeer.putText(LanguageString.NewInstance("deutsch", Language.GERMAN())));
156
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
157

    
158
		assertEquals("deutsch", textDataLeer.getText(Language.GERMAN()));
159
		assertEquals("francais", textDataLeer.getText(Language.FRENCH()));
160
		assertEquals("nothing", textDataLeer.getText(null));
161
		assertEquals(null, textDataLeer.getText(Language.CHINESE()));
162
	}
163

    
164
	@Test
165
	public void testRemoveText() {
166
		assertEquals(1, textData1.countLanguages());
167
		assertNull(textData1.removeText(Language.CHINESE()));
168
		assertEquals(1, textData1.countLanguages());
169
		LanguageString deutsch = LanguageString.NewInstance("xx", Language.GERMAN());
170
		textData1.putText(deutsch);
171
		textData1.putText(LanguageString.NewInstance("nothing", null));
172
		assertEquals(3, textData1.countLanguages());
173
		assertEquals(deutsch, textData1.removeText(Language.GERMAN()));
174
		assertEquals(2, textData1.countLanguages());
175
		textData1.removeText(null);
176
		assertEquals(1, textData1.countLanguages());
177
	}
178

    
179
	@Test
180
	public void testGetSetFormat() {
181
		textDataLeer.setFormat(format1);
182
		assertSame(format1, textDataLeer.getFormat());
183
		textDataLeer.setFormat(null);
184
		assertNull(textDataLeer.getFormat());
185
	}
186

    
187
	@Test
188
	public void testCountLanguages() {
189
		assertEquals(1, textData1.countLanguages());
190
		textData1.putText(LanguageString.NewInstance("nothing", null));
191
		assertEquals(2, textData1.countLanguages());
192
		textData1.removeText(null);
193
		assertEquals(1, textData1.countLanguages());
194
		textData1.removeText(Language.FRENCH());
195
		assertEquals(1, textData1.countLanguages());
196
		textData1.removeText(Language.DEFAULT());
197
		assertEquals(0, textData1.countLanguages());
198
	}
199

    
200
	@Test
201
	public void testClone(){
202
		TextData clone = textData1.clone();
203
		LanguageString langStringClone = clone.getLanguageText(Language.DEFAULT());
204
		LanguageString langString = textData1.getLanguageText(Language.DEFAULT());
205
		assertEquals(langStringClone.getText(), langString.getText());
206
		//assertEquals();
207
	}
208

    
209
	@Test
210
	public void testCloneMultiLanguageText() {
211
		MultilanguageText test = MultilanguageText.NewInstance();
212
		LanguageString testString = LanguageString.NewInstance("test", Language.ENGLISH());
213
		test.put(testString);
214
		MultilanguageText clone = test.clone();
215
		assertNotSame(clone.get(Language.ENGLISH()), test.get(Language.ENGLISH()));
216
		assertEquals(clone.get(Language.ENGLISH()).getText(), test.get(Language.ENGLISH()).getText());
217
	}
218
}
(9-9/9)