Project

General

Profile

Download (8.8 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.assertNull;
15
import static org.junit.Assert.assertSame;
16

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

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

    
25
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
26
import eu.etaxonomy.cdm.model.common.Language;
27
import eu.etaxonomy.cdm.model.common.LanguageString;
28

    
29
/**
30
 * @author a.mueller
31
 * @created 23.04.2008
32
 * @version 1.0
33
 */
34
public class TextDataTest {
35
	private static Logger logger = Logger.getLogger(TextDataTest.class);
36

    
37
	
38
	private TextData textDataLeer;
39
	private TextData textData1; 
40
	private TextFormat format1;
41
	private LanguageString languageString1;
42
	
43
	
44
	@BeforeClass
45
	public static void setUpBeforeClass() {
46
		DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
47
		vocabularyStore.initialize();
48
	}
49

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

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

    
75
	/**
76
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#NewInstance()}.
77
	 */
78
	@Test
79
	public void testNewInstanceStringLanguageTextFormat() {
80
		assertNotNull(textData1);
81
		assertNotNull(textData1.getMultilanguageText());
82
		assertEquals(1, textData1.size());
83
		assertEquals(1, textData1.countLanguages());
84
		LanguageString languageString = LanguageString.NewInstance("testText", Language.DEFAULT());
85
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
86
		assertNotNull(textData1.getFormat());
87
		assertSame(format1, textData1.getFormat());
88
	}
89
	
90
	
91
	/**
92
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#TextData()}.
93
	 */
94
	@Test
95
	public void testTextData() {
96
		textDataLeer = new TextData();
97
		assertNotNull(textDataLeer);
98
		assertNotNull(textDataLeer.getMultilanguageText());
99
		assertEquals(0, textDataLeer.getMultilanguageText().size());
100
		assertEquals(0, textDataLeer.countLanguages());
101
		assertNull(textDataLeer.getFormat());
102
	}
103

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

    
113
	/**
114
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#getMultilanguageText()}.
115
	 */
116
	@Test
117
	public void testGetMultilanguageText() {
118
		assertNotNull(textData1.getMultilanguageText());
119
//		assertEquals("testText", textData1.getMultilanguageText().getText(Language.DEFAULT()));
120
		assertNotNull(textDataLeer.getMultilanguageText());
121
//		assertNull(textDataLeer.getMultilanguageText().getText(Language.DEFAULT()));
122
		assertEquals(0, textDataLeer.getMultilanguageText().size());
123
	}
124
	
125
	/**
126
	 * This test reproduces a bug in java runtime. 
127
	 * The HashMap used to implement the MultilanguageText fails in jre1.6_11 b03 win32 to 
128
	 * to find existing Language keys. 
129
	 * FIXME this test fails to reproduce the bug -> integration test needed?
130
	 */
131
	@Test
132
	public void testPreferredLanguageString() {
133
		//FIXME move to integration test: List<Language> languages = termService.getLanguagesByLocale(locales.elements());
134
		List<Language> preferredLanguages = Arrays.asList(new Language[]{Language.DEFAULT()});
135
		assertNotNull(textData1.getPreferredLanguageString(preferredLanguages));
136
	}
137
	
138
//	/**
139
//	 * 
140
//	Test method for {@link eu.etaxonomy.cdm.model.description.TextData#setMultilanguageText()}.
141
//	 */
142
//	@Test
143
//	public void testSetMultilanguageText() {
144
//		MultilanguageText multilanguageText = MultilanguageText.NewInstance();
145
//		assertFalse(multilanguageText.equals(textData1.getMultilanguageText()));
146
//		Map<Language, LanguageString> texts = textData1.getMultilanguageText();
147
//		LanguageString text = texts.get(Language.DEFAULT());
148
//		text.setText("This is a test");
149
//		textData1.getMultilanguageText().clear();
150
//		assertNotNull(textData1.getMultilanguageText());
151
//		assertEquals(0, textData1.getMultilanguageText().size());
152
//	}
153
	
154
	/**
155
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#addText(java.lang.String, eu.etaxonomy.cdm.model.common.Language)}.
156
	 */
157
	@Test
158
	public void testPutTextStringLanguage() {
159
		textDataLeer.putText(Language.GERMAN(), "xx");
160
		assertNull(textDataLeer.putText("francais", Language.FRENCH()));
161
		textDataLeer.putText(null, "nothing");
162
		textDataLeer.putText(Language.CHINESE(), null);
163
		assertEquals(4 , textDataLeer.size());
164
		assertEquals("deutsch", textDataLeer.putText(Language.GERMAN(), "deutsch").getText());
165
		assertEquals(4 , textDataLeer.getMultilanguageText().size());
166
		assertEquals("deutsch", textDataLeer.getText(Language.GERMAN()));
167
		assertEquals("francais", textDataLeer.getText(Language.FRENCH()));
168
		assertEquals("nothing", textDataLeer.getText(null));
169
		assertEquals(null, textDataLeer.getText(Language.CHINESE()));
170
	}
171

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

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

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

    
211
	/**
212
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#getFormat()}.
213
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#setFormat(eu.etaxonomy.cdm.model.description.TextFormat)}.
214
	 */
215
	@Test
216
	public void testGetSetFormat() {
217
		textDataLeer.setFormat(format1);
218
		assertSame(format1, textDataLeer.getFormat());
219
		textDataLeer.setFormat(null);
220
		assertNull(textDataLeer.getFormat());	
221
	}
222
	
223
	/**
224
	 * Test method for {@link eu.etaxonomy.cdm.model.description.TextData#countLanguages()}.
225
	 */
226
	@Test
227
	public void testCountLanguages() {
228
		assertEquals(1, textData1.countLanguages());
229
		textData1.putText(LanguageString.NewInstance("nothing", null));
230
		assertEquals(2, textData1.countLanguages());
231
		textData1.removeText(null);
232
		assertEquals(1, textData1.countLanguages());
233
		textData1.removeText(Language.FRENCH());
234
		assertEquals(1, textData1.countLanguages());
235
		textData1.removeText(Language.DEFAULT());
236
		assertEquals(0, textData1.countLanguages());
237
		
238
	}	
239

    
240

    
241
}
(4-4/4)