Project

General

Profile

Download (13.9 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.name;
11

    
12
import static org.junit.Assert.assertEquals;
13
import static org.junit.Assert.assertNotNull;
14
import junit.framework.Assert;
15

    
16
import org.apache.log4j.Logger;
17
import org.junit.After;
18
import org.junit.Before;
19
import org.junit.BeforeClass;
20
import org.junit.Ignore;
21
import org.junit.Test;
22

    
23
import eu.etaxonomy.cdm.model.agent.Team;
24
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
25
//import eu.etaxonomy.cdm.model.reference.Article;
26
//import eu.etaxonomy.cdm.model.reference.Generic;
27
import eu.etaxonomy.cdm.model.reference.IArticle;
28
import eu.etaxonomy.cdm.model.reference.IGeneric;
29
import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
30
import eu.etaxonomy.cdm.model.reference.IReferenceBase;
31
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
32
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
33

    
34
/**
35
 * @author a.mueller
36
 *
37
 */
38
public class NonViralNameTest extends EntityTestBase {
39
	private static Logger logger = Logger.getLogger(NonViralNameTest.class);
40

    
41
	
42
	NonViralName<?> nonViralName1;
43
	NonViralName<?> nonViralName2;
44
	ReferenceFactory refFactory;
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
		nonViralName1 = new BotanicalName();
58
		nonViralName2 = new BotanicalName();
59
		refFactory = ReferenceFactory.newInstance();
60
	}
61

    
62
	/**
63
	 * @throws java.lang.Exception
64
	 */
65
	@After
66
	public void tearDown() throws Exception {
67
	}
68

    
69
// ******************* TESTS ***********************************/
70
	
71
	/**
72
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#generateTitle()}.
73
	 */
74
	@Test
75
	public final void testGenerateTitle() {
76
		String fullName = "Abies alba subsp. beta (L.) Mill.";
77
		nonViralName1.setGenusOrUninomial("Genus");
78
		nonViralName1.setSpecificEpithet("spec");
79
		nonViralName1.setRank(Rank.SPECIES());
80
		assertEquals("Genus spec", nonViralName1.generateTitle());
81
		assertEquals("", nonViralName2.generateTitle());
82
	}
83

    
84
	/**
85
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#isCodeCompliant()}.
86
	 */
87
	@Test
88
	public final void testIsCodeCompliant() {
89
		logger.warn("Not yet implemented"); // TODO
90
	}
91

    
92
	/**
93
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#NonViralName()}.
94
	 */
95
	@Test
96
	public final void testNonViralName() {
97
		assertNotNull(nonViralName1);
98
	}
99

    
100
	/**
101
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#NonViralName(eu.etaxonomy.cdm.model.name.Rank)}.
102
	 */
103
	@Test
104
	public final void testNonViralNameRank() {
105
		NonViralName<?> nonViralName = NonViralName.NewInstance(Rank.GENUS());
106
		assertNotNull(nonViralName);
107
	}
108

    
109
	/**
110
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#NonViralName(eu.etaxonomy.cdm.model.name.Rank, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.agent.Agent, eu.etaxonomy.cdm.model.reference.INomenclaturalReference, java.lang.String)}.
111
	 */
112
	@Test
113
	public final void testNonViralNameRankStringStringStringAgentINomenclaturalReferenceString() {
114
		Team agent = Team.NewInstance();
115
		INomenclaturalReference article = refFactory.newArticle();
116
		HomotypicalGroup homotypicalGroup = HomotypicalGroup.NewInstance();
117
		NonViralName<?> nonViralName = new NonViralName(Rank.GENUS(), "Genus", "infraGen", "species", "infraSpec", agent, article, "mikro", homotypicalGroup);
118
		assertEquals("Genus", nonViralName.getGenusOrUninomial() );
119
		assertEquals("infraGen", nonViralName.getInfraGenericEpithet());
120
		assertEquals("species", nonViralName.getSpecificEpithet() );
121
		assertEquals("infraSpec", nonViralName.getInfraSpecificEpithet());
122
		assertEquals(agent, nonViralName.getCombinationAuthorTeam() );
123
		assertEquals(article, nonViralName.getNomenclaturalReference() );
124
		assertEquals("mikro", nonViralName.getNomenclaturalMicroReference() );
125
	}
126

    
127
	/**
128
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getCombinationAuthorTeam()}.
129
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#setCombinationAuthorTeam(eu.etaxonomy.cdm.model.agent.Agent)}.
130
	 */
131
	@Test
132
	public final void testGetSetCombinationAuthorTeam() {
133
		Team team1 = Team.NewInstance();
134
		nonViralName1.setCombinationAuthorTeam(team1);
135
		assertEquals(team1, nonViralName1.getCombinationAuthorTeam());
136
		nonViralName1.setCombinationAuthorTeam(null);
137
		assertEquals(null, nonViralName1.getCombinationAuthorTeam());
138
		nonViralName2.setCombinationAuthorTeam(null);
139
		assertEquals(null, nonViralName2.getCombinationAuthorTeam());
140
	}
141

    
142

    
143
	/**
144
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getExCombinationAuthorTeam()}.
145
	 */
146
	@Test
147
	public final void testGetSetExCombinationAuthorTeam() {
148
		Team team1 = Team.NewInstance();
149
		nonViralName1.setExCombinationAuthorTeam(team1);
150
		assertEquals(team1, nonViralName1.getExCombinationAuthorTeam());
151
		nonViralName1.setExCombinationAuthorTeam(null);
152
		assertEquals(null, nonViralName1.getExCombinationAuthorTeam());
153
		nonViralName2.setExCombinationAuthorTeam(null);
154
		assertEquals(null, nonViralName2.getExCombinationAuthorTeam());
155
	}
156
	
157

    
158
	/**
159
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getCombinationAuthorTeam()}.
160
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#setCombinationAuthorTeam(eu.etaxonomy.cdm.model.agent.Agent)}.
161
	 */
162
	@Test
163
	public final void testGetSetBasionymAuthorTeam() {
164
		Team team1 = Team.NewInstance();
165
		nonViralName1.setBasionymAuthorTeam(team1);
166
		assertEquals(team1, nonViralName1.getBasionymAuthorTeam());
167
		nonViralName1.setBasionymAuthorTeam(null);
168
		assertEquals(null, nonViralName1.getBasionymAuthorTeam());
169
		nonViralName2.setBasionymAuthorTeam(null);
170
		assertEquals(null, nonViralName2.getBasionymAuthorTeam());
171
	}
172

    
173

    
174
	/**
175
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getExCombinationAuthorTeam()}.
176
	 */
177
	@Test
178
	public final void testGetSetExBasionymAuthorTeam() {
179
		Team team1 = Team.NewInstance();
180
		nonViralName1.setExBasionymAuthorTeam(team1);
181
		assertEquals(team1, nonViralName1.getExBasionymAuthorTeam());
182
		nonViralName1.setExBasionymAuthorTeam(null);
183
		assertEquals(null, nonViralName1.getExBasionymAuthorTeam());
184
		nonViralName2.setExBasionymAuthorTeam(null);
185
		assertEquals(null, nonViralName2.getExBasionymAuthorTeam());
186
	}
187

    
188

    
189
	/**
190
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getGenusOrUninomial()}.
191
	 */
192
	@Test
193
	public final void testGetSetGenusOrUninomial() {
194
		nonViralName1.setGenusOrUninomial("Genus");
195
		assertEquals("Genus", nonViralName1.getGenusOrUninomial());
196
		nonViralName1.setGenusOrUninomial(null);
197
		assertEquals(null, nonViralName1.getGenusOrUninomial());
198
		nonViralName2.setGenusOrUninomial(null);
199
		assertEquals(null, nonViralName2.getGenusOrUninomial());
200
	}
201

    
202
	/**
203
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getInfraGenericEpithet()}.
204
	 */
205
	@Test
206
	public final void testGetSetInfraGenericEpithet() {
207
		nonViralName1.setInfraGenericEpithet("InfraGenus");
208
		assertEquals("InfraGenus", nonViralName1.getInfraGenericEpithet());
209
		nonViralName1.setInfraGenericEpithet(null);
210
		assertEquals(null, nonViralName1.getInfraGenericEpithet());
211
		nonViralName2.setInfraGenericEpithet(null);
212
		assertEquals(null, nonViralName2.getInfraGenericEpithet());
213
	}
214

    
215
	/**
216
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getSpecificEpithet()}.
217
	 */
218
	@Test
219
	public final void testGetSetSpecificEpithet() {
220
		nonViralName1.setSpecificEpithet("specEpi");
221
		assertEquals("specEpi", nonViralName1.getSpecificEpithet());
222
		nonViralName1.setSpecificEpithet(null);
223
		assertEquals(null, nonViralName1.getSpecificEpithet());
224
		nonViralName2.setSpecificEpithet(null);
225
		assertEquals(null, nonViralName2.getSpecificEpithet());
226
	}
227

    
228
	/**
229
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getInfraSpecificEpithet()}.
230
	 */
231
	@Test
232
	public final void testGetSetInfraSpecificEpithet() {
233
		nonViralName1.setInfraSpecificEpithet("InfraSpecEpi");
234
		assertEquals("InfraSpecEpi", nonViralName1.getInfraSpecificEpithet());
235
		nonViralName1.setInfraSpecificEpithet(null);
236
		assertEquals(null, nonViralName1.getInfraSpecificEpithet());
237
		nonViralName2.setInfraSpecificEpithet(null);
238
		assertEquals(null, nonViralName2.getInfraSpecificEpithet());
239
	}
240

    
241
	/**
242
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#setAuthorshipCache(java.lang.String)}.
243
	 * Test method for {@link eu.etaxonomy.cdm.model.name.NonViralName#getAuthorshipCache()}.
244
	 * NOT FINISHED YET
245
	 */
246
	@Test
247
	
248
	public final void testGetSetAuthorshipCache() {
249
		String strTeam1 = "Team1";
250
		String strTeam2 = "Team2";
251
		String strTeam3 = "Team3";
252
		IGeneric ref1 = refFactory.newGeneric();
253
		ref1.setTitleCache("RefTitle",true);
254
		
255
		Team team1 = Team.NewInstance();
256
		Team team2 = Team.NewInstance();
257
		team1.setNomenclaturalTitle(strTeam1);
258
		team2.setNomenclaturalTitle(strTeam2);
259
		nonViralName1.setGenusOrUninomial("Abies");
260
		nonViralName1.setSpecificEpithet("alba");
261
		nonViralName1.setNomenclaturalReference(ref1);
262
		Assert.assertEquals("Abies alba", nonViralName1.getNameCache());
263
		
264
		nonViralName1.setCombinationAuthorTeam(team1);
265
		assertEquals(team1, nonViralName1.getCombinationAuthorTeam());
266
		assertEquals(strTeam1, nonViralName1.getAuthorshipCache());
267
		Assert.assertEquals("Abies alba "+strTeam1, nonViralName1.getTitleCache());
268
		Assert.assertEquals("Abies alba "+strTeam1+ ", RefTitle", nonViralName1.getFullTitleCache());
269
		
270
		nonViralName1.setAuthorshipCache(strTeam2);
271
		assertEquals(strTeam2, nonViralName1.getAuthorshipCache());
272
		nonViralName1.setGenusOrUninomial("Calendula");
273
		Assert.assertEquals("Calendula alba "+strTeam2, nonViralName1.getTitleCache());
274
		
275
		nonViralName1.setAuthorshipCache(strTeam3);
276
		Assert.assertEquals("Calendula alba "+strTeam3, nonViralName1.getTitleCache());
277
		
278
		Assert.assertEquals("Calendula alba "+strTeam3+ ", RefTitle", nonViralName1.getFullTitleCache());
279
		
280
		nonViralName1.setCombinationAuthorTeam(null);
281
		assertEquals(null, nonViralName1.getCombinationAuthorTeam());
282
	}
283
	
284

    
285
	@Test
286
	public final void testGetChildAndParentRelationships() {
287
		NonViralName nonViralName1 = new NonViralName();
288
		assertEquals(0, nonViralName1.getParentRelationships().size());
289
		assertEquals(0, nonViralName1.getChildRelationships().size());
290
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
291
		HybridRelationship hybridRelationship = new HybridRelationship(nonViralName1, femaleParent, HybridRelationshipType.FEMALE_PARENT(), null );
292
		assertEquals(1, nonViralName1.getChildRelationships().size());
293
		assertEquals(hybridRelationship, nonViralName1.getChildRelationships().iterator().next());
294
		assertEquals(1, femaleParent.getParentRelationships().size());
295
	}
296

    
297
	@Test
298
	public final void testAddHybridRelationships() {
299
		NonViralName nonViralName1 = new NonViralName();
300
		assertEquals(0, nonViralName1.getParentRelationships().size());
301
		assertEquals(0, nonViralName1.getChildRelationships().size());
302
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
303
		BotanicalName maleParent = BotanicalName.NewInstance(null);
304
		
305
		nonViralName1.addHybridParent(femaleParent, HybridRelationshipType.MALE_PARENT(), null);
306
		nonViralName1.addHybridParent(maleParent, HybridRelationshipType.MALE_PARENT(), null);
307
		
308
		assertEquals(2, nonViralName1.getChildRelationships().size());
309
		assertEquals(0, nonViralName1.getParentRelationships().size());
310
		assertEquals(1, maleParent.getParentRelationships().size());
311
		assertEquals(1, femaleParent.getParentRelationships().size());
312
		assertEquals(0, maleParent.getChildRelationships().size());
313
		assertEquals(0, femaleParent.getChildRelationships().size());
314
				
315
	}
316

    
317
	@Test(expected=IllegalArgumentException.class)
318
	public final void testAddHybridRelationship() {
319
		NonViralName nonViralName1 = new NonViralName();
320
		assertEquals(0, nonViralName1.getParentRelationships().size());
321
		assertEquals(0, nonViralName1.getChildRelationships().size());
322
		NonViralName botanicalName2 = new NonViralName();
323
		botanicalName2.addHybridRelationship(null);
324
	}
325

    
326
	@Test
327
	public final void testRemoveHybridRelationship() {
328
		NonViralName botanicalName1 = new NonViralName();
329
		assertEquals(0, botanicalName1.getParentRelationships().size());
330
		assertEquals(0, botanicalName1.getChildRelationships().size());
331
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
332
		NonViralName maleParent = NonViralName.NewInstance(null);
333
		ZoologicalName child = ZoologicalName.NewInstance(null);
334
		
335
		botanicalName1.addHybridParent(femaleParent, HybridRelationshipType.FEMALE_PARENT(), null);
336
		botanicalName1.addHybridParent(maleParent, HybridRelationshipType.MALE_PARENT(), null);
337
		botanicalName1.addHybridChild(child, HybridRelationshipType.FIRST_PARENT(), null);
338
		assertEquals(2, botanicalName1.getChildRelationships().size());
339
		assertEquals(1, botanicalName1.getParentRelationships().size());
340
		assertEquals(1, child.getChildRelationships().size());
341
		
342
		botanicalName1.removeHybridParent(femaleParent);
343
		assertEquals(1, botanicalName1.getChildRelationships().size());
344
		assertEquals(1, botanicalName1.getParentRelationships().size());
345
		
346
		botanicalName1.removeHybridParent(maleParent);
347
		assertEquals(0, botanicalName1.getChildRelationships().size());
348
		assertEquals(1, botanicalName1.getParentRelationships().size());
349
		
350
		botanicalName1.removeHybridChild(child);
351
		assertEquals(0, botanicalName1.getParentRelationships().size());
352
		
353
		//null
354
		botanicalName1.removeHybridRelationship(null);
355
		assertEquals(0, botanicalName1.getChildRelationships().size());
356
	}
357
}
(6-6/9)