Project

General

Profile

Download (9.13 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.*;
13

    
14
import java.util.HashSet;
15
import java.util.Set;
16

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

    
25
import eu.etaxonomy.cdm.model.agent.Team;
26
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
27
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
28
import eu.etaxonomy.cdm.model.reference.Article;
29
import eu.etaxonomy.cdm.model.reference.INomenclaturalReference;
30
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
31
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
32

    
33

    
34
public class BotanicalNameTest extends EntityTestBase{
35
	private static final Logger logger = Logger.getLogger(BotanicalNameTest.class);
36
	
37
	private BotanicalName botanicalName1;
38
	private BotanicalName botanicalName2;
39
	
40
	@BeforeClass
41
	public static void setUpBeforeClass() {
42
		DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
43
		vocabularyStore.initialize();
44
	}
45

    
46
	@Before
47
	public void setUp() throws Exception {
48
		botanicalName1 = new BotanicalName();
49
		botanicalName2 = new BotanicalName();
50
	}
51
	
52
/****** TESTS *******************************/
53
	
54
	@Test
55
	public final void testPARSED_NAME() {
56
		String fullName = "Abies alba subsp. beta (L.) Mill.";
57
		BotanicalName name = BotanicalName.PARSED_NAME(fullName);
58
		assertFalse(name.getHasProblem());
59
		assertEquals("beta", name.getInfraSpecificEpithet());
60
	}
61

    
62
	@Test
63
	public final void testBotanicalName() {
64
		assertNotNull(botanicalName1);
65
		assertNull(botanicalName1.getRank());
66
	}
67

    
68
	@Test
69
	public final void testBotanicalNameRank() {
70
		Rank genus = Rank.GENUS();
71
		BotanicalName rankName = BotanicalName.NewInstance(genus);
72
		assertNotNull(rankName);
73
		assertSame(genus, rankName.getRank());
74
		assertTrue(rankName.getRank().isGenus());
75
		BotanicalName nullRankName = BotanicalName.NewInstance(null);
76
		assertNotNull(nullRankName);
77
		assertNull(nullRankName.getRank());
78
	}
79

    
80
	@Test
81
	public final void testBotanicalNameRankStringStringStringAgentINomenclaturalReferenceString() {
82
		Rank rank = Rank.SPECIALFORM();
83
		String genusOrUninomial = "Genus";
84
		String infraGenericEpithet = "infraGenericEpi";
85
		String specificEpithet = "specEpi";
86
		String infraSpecificEpithet = "infraSpecificEpi";
87
		TeamOrPersonBase combinationAuthorTeam = Team.NewInstance();
88
		INomenclaturalReference nomenclaturalReference = Article.NewInstance();
89
		String nomenclMicroRef = "microRef";
90
		HomotypicalGroup homotypicalGroup = new HomotypicalGroup();
91
		BotanicalName fullName = new BotanicalName(rank, genusOrUninomial, infraGenericEpithet, specificEpithet, infraSpecificEpithet, combinationAuthorTeam, nomenclaturalReference, nomenclMicroRef, homotypicalGroup);
92
		assertEquals(Rank.SPECIALFORM(), fullName.getRank());
93
		assertEquals("Genus", fullName.getGenusOrUninomial());
94
		assertEquals("infraGenericEpi", fullName.getInfraGenericEpithet());
95
		assertEquals("specEpi", fullName.getSpecificEpithet());
96
		assertEquals("infraSpecificEpi", fullName.getInfraSpecificEpithet());
97
		assertEquals(combinationAuthorTeam, fullName.getCombinationAuthorTeam());
98
		assertEquals(nomenclaturalReference, fullName.getNomenclaturalReference());
99
		assertEquals("microRef", fullName.getNomenclaturalMicroReference());
100
		assertSame(homotypicalGroup, fullName.getHomotypicalGroup());
101
	}
102

    
103
	@Test
104
	public final void testGetHybridRelationships() {
105
		assertEquals(0, botanicalName1.getHybridRelationships().size());
106
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
107
		HybridRelationship hybridRelationship = new HybridRelationship(femaleParent, botanicalName1, HybridRelationshipType.FEMALE_PARENT(), null );
108
		botanicalName1.addHybridRelationship(hybridRelationship);
109
		assertEquals(1, botanicalName1.getHybridRelationships().size());
110
		assertEquals(hybridRelationship, botanicalName1.getHybridRelationships().iterator().next());
111
		botanicalName2.addHybridRelationship(null);
112
		assertEquals(1, botanicalName2.getHybridRelationships().size());
113
	}
114

    
115
	@Test
116
	@Ignore
117
	public final void testSetHybridRelationships() {
118
		assertEquals(0, botanicalName1.getHybridRelationships().size());
119
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
120
		BotanicalName maleParent = BotanicalName.NewInstance(null);
121
		
122
		HybridRelationship hybridRelationship1 = new HybridRelationship(femaleParent, botanicalName1, HybridRelationshipType.FEMALE_PARENT(), null );
123
		HybridRelationship hybridRelationship2 = new HybridRelationship(maleParent, botanicalName1, HybridRelationshipType.MALE_PARENT(), null );
124
		
125
		botanicalName1.addHybridRelationship(hybridRelationship1);
126
		botanicalName1.addHybridRelationship(hybridRelationship2);
127
		assertEquals(2, botanicalName1.getHybridRelationships().size());
128

    
129
		//TODO
130
		//assertEquals(2, botanicalName1.getHybridRelationships().size());
131
		logger.warn("not yet fully implemented");
132
		botanicalName2.getHybridRelationships().clear();
133
		//TODO how should this be defined??
134
		assertTrue(botanicalName2.getHybridRelationships().isEmpty());
135
	}
136

    
137
	@Test
138
	public final void testAddHybridRelationship() {
139
		assertEquals(0, botanicalName1.getHybridRelationships().size());
140
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
141
		HybridRelationship hybridRelationship = new HybridRelationship(femaleParent, botanicalName1, HybridRelationshipType.FEMALE_PARENT(), null );
142
		botanicalName1.addHybridRelationship(hybridRelationship);
143
		assertEquals(1, botanicalName1.getHybridRelationships().size());
144
		botanicalName1.addHybridRelationship(hybridRelationship);
145
		assertEquals(1, botanicalName1.getHybridRelationships().size());
146
		assertEquals(hybridRelationship, botanicalName1.getHybridRelationships().iterator().next());
147
		botanicalName2.addHybridRelationship(null);
148
		//TODO is this wanted or should it be 0 ??
149
		assertEquals(1, botanicalName2.getHybridRelationships().size());
150
	}
151

    
152
	@Test
153
	public final void testRemoveHybridRelationship() {
154
		assertEquals(0, botanicalName1.getHybridRelationships().size());
155
		BotanicalName femaleParent = BotanicalName.NewInstance(null);
156
		BotanicalName maleParent = BotanicalName.NewInstance(null);
157
		HybridRelationship hybridRelationship1 = new HybridRelationship(femaleParent, botanicalName1, HybridRelationshipType.FEMALE_PARENT(), null );
158
		HybridRelationship hybridRelationship2 = new HybridRelationship(maleParent, botanicalName1, HybridRelationshipType.FEMALE_PARENT(), null );
159
		botanicalName1.addHybridRelationship(hybridRelationship1);
160
		botanicalName1.addHybridRelationship(hybridRelationship2);
161
		assertEquals(2, botanicalName1.getHybridRelationships().size());
162
		botanicalName1.removeHybridRelationship(hybridRelationship1);
163
		assertEquals(1, botanicalName1.getHybridRelationships().size());
164
		assertEquals(hybridRelationship2, botanicalName1.getHybridRelationships().iterator().next());
165
		botanicalName1.removeHybridRelationship(hybridRelationship2);
166
		assertEquals(0, botanicalName1.getHybridRelationships().size());
167
		
168
		//null
169
		botanicalName2.addHybridRelationship(null);
170
		botanicalName2.removeHybridRelationship(null);
171
		assertEquals(0, botanicalName2.getHybridRelationships().size());
172
	}
173

    
174
	@Test
175
	public final void testGetParentRelationships() {
176
		assertEquals(0, botanicalName1.getParentRelationships().size());
177
		logger.warn("Not yet implemented"); // TODO
178
	}
179

    
180
	@Test
181
	public final void testGetChildRelationships() {
182
		logger.warn("Not yet implemented"); // TODO
183
	}
184

    
185
	@Test
186
	public final void testIsSetHybridFormula() {
187
		assertFalse(botanicalName1.isHybridFormula());
188
		botanicalName1.setHybridFormula(true);
189
		assertTrue(botanicalName1.isHybridFormula());
190
		botanicalName1.setHybridFormula(false);
191
		assertFalse(botanicalName1.isHybridFormula());
192
	}
193

    
194
	@Test
195
	public final void testIsSetMonomHybrid() {
196
		assertFalse(botanicalName1.isMonomHybrid());
197
		botanicalName1.setMonomHybrid(true);
198
		assertTrue(botanicalName1.isMonomHybrid());
199
		botanicalName1.setMonomHybrid(false);
200
		assertFalse(botanicalName1.isMonomHybrid());
201
	}
202

    
203
	@Test
204
	public final void testIsSetBinomHybrid() {
205
		assertFalse(botanicalName1.isBinomHybrid());
206
		botanicalName1.setBinomHybrid(true);
207
		assertTrue(botanicalName1.isBinomHybrid());
208
		botanicalName1.setBinomHybrid(false);
209
		assertFalse(botanicalName1.isBinomHybrid());
210
	}
211

    
212
	@Test
213
	public final void testIsTrinomHybrid() {
214
		assertFalse(botanicalName1.isTrinomHybrid());
215
		botanicalName1.setTrinomHybrid(true);
216
		assertTrue(botanicalName1.isTrinomHybrid());
217
		botanicalName1.setTrinomHybrid(false);
218
		assertFalse(botanicalName1.isTrinomHybrid());
219
	}
220

    
221
	@Test
222
	public final void testIsAnamorphic() {
223
		assertFalse(botanicalName1.isAnamorphic());
224
		botanicalName1.setAnamorphic(true);
225
		assertTrue(botanicalName1.isAnamorphic());
226
		botanicalName1.setAnamorphic(false);
227
		assertFalse(botanicalName1.isAnamorphic());
228
	}
229

    
230
}
(1-1/4)