Project

General

Profile

Download (9.6 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.BeforeClass;
24
import org.junit.Test;
25

    
26
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
27
import eu.etaxonomy.cdm.model.common.Language;
28
import eu.etaxonomy.cdm.model.common.LanguageString;
29
import eu.etaxonomy.cdm.model.common.MultilanguageText;
30

    
31
/**
32
 * @author a.mueller
33
 * @since 23.04.2008
34
 */
35
public class TextDataTest {
36
	@SuppressWarnings("unused")
37
	private static Logger logger = Logger.getLogger(TextDataTest.class);
38

    
39

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

    
45

    
46
	@BeforeClass
47
	public static void setUpBeforeClass() {
48
		DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
49
		vocabularyStore.initialize();
50
	}
51

    
52
	/**
53
	 * @throws java.lang.Exception
54
	 */
55
	@Before
56
	public void setUp() throws Exception {
57
		textDataLeer = TextData.NewInstance();
58
		format1 = TextFormat.NewInstance();
59
		textData1 = TextData.NewInstance("testText", Language.DEFAULT(), format1);
60
		languageString1 = LanguageString.NewInstance("langText", Language.GERMAN());
61
	}
62

    
63
/* ************************** TESTS **********************************************************/
64

    
65
	/**
66
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#NewInstance()}.
67
	 */
68
	@Test
69
	public void testNewInstance() {
70
		assertNotNull(textDataLeer);
71
		assertNotNull(textDataLeer.getMultilanguageText());
72
		assertEquals(0, textDataLeer.size());
73
		assertEquals(0, textDataLeer.countLanguages());
74
		assertNull(textDataLeer.getFormat());
75
	}
76

    
77
	/**
78
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#NewInstance()}.
79
	 */
80
	@Test
81
	public void testNewInstanceStringLanguageTextFormat() {
82
		assertNotNull(textData1);
83
		assertNotNull(textData1.getMultilanguageText());
84
		assertEquals(1, textData1.size());
85
		assertEquals(1, textData1.countLanguages());
86
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
87
		assertNotNull(textData1.getFormat());
88
		assertSame(format1, textData1.getFormat());
89
	}
90

    
91

    
92
	/**
93
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#TextData()}.
94
	 */
95
	@Test
96
	public void testTextData() {
97
		textDataLeer = new TextData();
98
		assertNotNull(textDataLeer);
99
		assertNotNull(textDataLeer.getMultilanguageText());
100
		assertEquals(0, textDataLeer.getMultilanguageText().size());
101
		assertEquals(0, textDataLeer.countLanguages());
102
		assertNull(textDataLeer.getFormat());
103
	}
104

    
105
	/**
106
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#getTexts()}.
107
	 */
108
	@Test
109
	public void testGetText() {
110
		assertNotNull(textData1.getText(Language.DEFAULT()));
111
		assertNull(textDataLeer.getText(Language.DEFAULT()));
112
	}
113

    
114
	/**
115
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#getMultilanguageText()}.
116
	 */
117
	@Test
118
	public void testGetMultilanguageText() {
119
		assertNotNull(textData1.getMultilanguageText());
120
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
121
		assertNotNull(textDataLeer.getMultilanguageText());
122
//		assertNull(textDataLeer.getMultilanguageText().getText(Language.DEFAULT()));
123
		assertEquals(0, textDataLeer.getMultilanguageText().size());
124
	}
125

    
126
	/**
127
	 * This test reproduces a bug in java runtime.
128
	 * The HashMap used to implement the MultilanguageText fails in jre1.6_11 b03 win32 to
129
	 * to find existing Language keys.
130
	 * FIXME this test fails to reproduce the bug -> integration test needed?
131
	 */
132
	@Test
133
	public void testPreferredLanguageString() {
134
		//FIXME move to integration test: List<Language> languages = termService.getLanguagesByLocale(locales.elements());
135
		List<Language> preferredLanguages = Arrays.asList(new Language[]{Language.DEFAULT()});
136
		assertNotNull(textData1.getPreferredLanguageString(preferredLanguages));
137
	}
138

    
139
//	/**
140
//	 *
141
//	Test method for {@link eu.etaxonomy.cdm.model.description.TextData#setMultilanguageText()}.
142
//	 */
143
//	@Test
144
//	public void testSetMultilanguageText() {
145
//		MultilanguageText multilanguageText = MultilanguageText.NewInstance();
146
//		assertFalse(multilanguageText.equals(textData1.getMultilanguageText()));
147
//		Map<Language, LanguageString> texts = textData1.getMultilanguageText();
148
//		LanguageString text = texts.get(Language.DEFAULT());
149
//		text.setText("This is a test");
150
//		textData1.getMultilanguageText().clear();
151
//		assertNotNull(textData1.getMultilanguageText());
152
//		assertEquals(0, textData1.getMultilanguageText().size());
153
//	}
154

    
155
	/**
156
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#addText(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
157
	 */
158
	@Test
159
	public void testPutTextStringLanguage() {
160
		textDataLeer.putText(Language.GERMAN(), "xx");
161
		assertEquals(textDataLeer.putText(Language.FRENCH(), "francais").getLanguage(), Language.FRENCH());
162
		textDataLeer.putText(null, "nothing");
163
		textDataLeer.putText(Language.CHINESE(), null);
164
		assertEquals(4 , textDataLeer.size());
165
		assertEquals("deutsch", textDataLeer.putText(Language.GERMAN(), "deutsch").getText());
166
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
167
		assertEquals("deutsch", textDataLeer.getText(Language.GERMAN()));
168
		assertEquals("francais", textDataLeer.getText(Language.FRENCH()));
169
		assertEquals("nothing", textDataLeer.getText(null));
170
		assertEquals(null, textDataLeer.getText(Language.CHINESE()));
171
	}
172

    
173
	/**
174
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#addText(eu.etaxonomy.cdm.model.common.LanguageString)}.
175
	 */
176
	@Test
177
	public void testPutTextLanguageString() {
178
		LanguageString deutsch = LanguageString.NewInstance("xx", Language.GERMAN());
179
		textDataLeer.putText(deutsch);
180
		assertNull(textDataLeer.putText(LanguageString.NewInstance("francais", Language.FRENCH())));
181
		textDataLeer.putText(LanguageString.NewInstance("nothing", null));
182
		textDataLeer.putText(LanguageString.NewInstance(null, Language.CHINESE()));
183
		assertNotNull(textDataLeer.getMultilanguageText());
184
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
185
		assertEquals(deutsch, textDataLeer.putText(LanguageString.NewInstance("deutsch", Language.GERMAN())));
186
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
187

    
188
		assertEquals("deutsch", textDataLeer.getText(Language.GERMAN()));
189
		assertEquals("francais", textDataLeer.getText(Language.FRENCH()));
190
		assertEquals("nothing", textDataLeer.getText(null));
191
		assertEquals(null, textDataLeer.getText(Language.CHINESE()));
192
	}
193

    
194
	/**
195
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#removeText(eu.etaxonomy.cdm.model.common.Language)}.
196
	 */
197
	@Test
198
	public void testRemoveText() {
199
		assertEquals(1, textData1.countLanguages());
200
		assertNull(textData1.removeText(Language.CHINESE()));
201
		assertEquals(1, textData1.countLanguages());
202
		LanguageString deutsch = LanguageString.NewInstance("xx", Language.GERMAN());
203
		textData1.putText(deutsch);
204
		textData1.putText(LanguageString.NewInstance("nothing", null));
205
		assertEquals(3, textData1.countLanguages());
206
		assertEquals(deutsch, textData1.removeText(Language.GERMAN()));
207
		assertEquals(2, textData1.countLanguages());
208
		textData1.removeText(null);
209
		assertEquals(1, textData1.countLanguages());
210
	}
211

    
212
	/**
213
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#getFormat()}.
214
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#setFormat(eu.etaxonomy.cdm.model.description.TextFormat)}.
215
	 */
216
	@Test
217
	public void testGetSetFormat() {
218
		textDataLeer.setFormat(format1);
219
		assertSame(format1, textDataLeer.getFormat());
220
		textDataLeer.setFormat(null);
221
		assertNull(textDataLeer.getFormat());
222
	}
223

    
224
	/**
225
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#countLanguages()}.
226
	 */
227
	@Test
228
	public void testCountLanguages() {
229
		assertEquals(1, textData1.countLanguages());
230
		textData1.putText(LanguageString.NewInstance("nothing", null));
231
		assertEquals(2, textData1.countLanguages());
232
		textData1.removeText(null);
233
		assertEquals(1, textData1.countLanguages());
234
		textData1.removeText(Language.FRENCH());
235
		assertEquals(1, textData1.countLanguages());
236
		textData1.removeText(Language.DEFAULT());
237
		assertEquals(0, textData1.countLanguages());
238

    
239
	}
240

    
241
	@Test
242
	public void testClone(){
243
		TextData clone = (TextData) textData1.clone();
244
		LanguageString langStringClone = clone.getLanguageText(Language.DEFAULT());
245
		LanguageString langString = textData1.getLanguageText(Language.DEFAULT());
246
		assertEquals(langStringClone.getText(), langString.getText());
247
		//assertEquals();
248
	}
249

    
250
	@Test
251
	public void testCloneMultiLanguageText() {
252
		MultilanguageText test = MultilanguageText.NewInstance();
253
		LanguageString testString = LanguageString.NewInstance("test", Language.ENGLISH());
254
		test.put(testString);
255
		MultilanguageText clone = test.clone();
256
		assertNotSame(clone.get(Language.ENGLISH()), test.get(Language.ENGLISH()));
257
		assertEquals(clone.get(Language.ENGLISH()).getText(), test.get(Language.ENGLISH()).getText());
258
	}
259

    
260

    
261
}
(10-10/10)