2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.location
;
12 import static org
.junit
.Assert
.assertEquals
;
14 import java
.util
.ArrayList
;
15 import java
.util
.HashMap
;
16 import java
.util
.HashSet
;
17 import java
.util
.List
;
19 import java
.util
.UUID
;
21 import org
.apache
.log4j
.Logger
;
22 import org
.junit
.After
;
23 import org
.junit
.AfterClass
;
24 import org
.junit
.Before
;
25 import org
.junit
.BeforeClass
;
26 import org
.junit
.Test
;
28 import eu
.etaxonomy
.cdm
.model
.common
.DefaultTermInitializer
;
29 import eu
.etaxonomy
.cdm
.model
.description
.Distribution
;
30 import eu
.etaxonomy
.cdm
.common
.Tree
;
31 import eu
.etaxonomy
.cdm
.common
.TreeNode
;
32 import eu
.etaxonomy
.cdm
.model
.location
.NamedArea
;
39 public class TdwgAreaTest
{
40 @SuppressWarnings("unused")
41 private static final Logger logger
= Logger
.getLogger(TdwgAreaTest
.class);
44 * @throws java.lang.Exception
47 public static void setUpBeforeClass() throws Exception
{
51 * @throws java.lang.Exception
54 public static void tearDownAfterClass() throws Exception
{
58 * @throws java.lang.Exception
61 public void setUp() throws Exception
{
65 * @throws java.lang.Exception
68 public void tearDown() throws Exception
{
72 * Test method for {@link eu.etaxonomy.cdm.model.location.TdwgArea#getAreaByTdwgAbbreviation(java.lang.String)}.
75 public void testGetAreaByTdwgAbbreviation() {
76 // Language.ENGLISH(); // to make sure Terms are already loaded
77 // NamedArea area = TdwgArea.getAreaByTdwgAbbreviation("GER");
78 // Assert.assertEquals("Germany", area.getLabel(Language.ENGLISH()));
79 // Assert.assertNull(TdwgArea.getAreaByTdwgAbbreviation("A1R"));
83 * Test method for {@link eu.etaxonomy.cdm.model.location.TdwgArea#getAreaByTdwgLabel(java.lang.String)}.
86 public void testGetAreaByTdwgLabel() {
87 // Assert.assertEquals("Germany", TdwgArea.getAreaByTdwgLabel("Germany").getLabel(Language.ENGLISH()));
88 // Assert.assertNull(TdwgArea.getAreaByTdwgLabel("A1R"));
92 * Test method for {@link eu.etaxonomy.cdm.model.location.TdwgArea#isTdwgAreaLabel(java.lang.String)}.
95 public void testIsTdwgAreaLabel() {
96 // Assert.assertTrue(TdwgArea.isTdwgAreaLabel("Germany"));
97 // Assert.assertFalse(TdwgArea.isTdwgAreaLabel("sf2fe"));
101 * Test method for {@link eu.etaxonomy.cdm.model.location.TdwgArea#addTdwgArea(eu.etaxonomy.cdm.model.location.NamedArea)}.
104 public void testAddTdwgArea() {
105 // String testAreaLabel = "TestArea";
106 // Assert.assertFalse(TdwgArea.isTdwgAreaLabel(testAreaLabel));
107 // NamedArea area = NamedArea.NewInstance("", testAreaLabel, "");
108 // TdwgArea.addTdwgArea(area);
109 // Field labelMapField = null;
111 // labelMapField = TdwgArea.class.getDeclaredField("labelMap");
112 // labelMapField.setAccessible(true);
113 // Object obj = labelMapField.get(null);
114 // Map<String, UUID> map = (Map<String, UUID>)obj;
115 // Assert.assertEquals(area.getUuid(), map.get(testAreaLabel));
116 // } catch (Exception e) {
117 // // TODO Auto-generated catch block
118 // e.printStackTrace();
123 public void testLoadingOfPartOfRelationships() {
124 // NamedArea britain = TdwgArea.getAreaByTdwgAbbreviation("GRB");
125 // NamedArea northernEurope = TdwgArea.getAreaByTdwgAbbreviation("10");
126 // assert britain != null : "NamedArea must exist";
127 // assert northernEurope != null : "NamedArea must exist";
129 // assertTrue("Northern Europe should include Britain",northernEurope.getIncludes().contains(britain));
130 // assertEquals("Britain should be part of Northern Europe",britain.getPartOf(),northernEurope);
134 public void testNamedAreaLevelAssignment() {
135 // NamedArea britain = TdwgArea.getAreaByTdwgAbbreviation("GRB");
136 // NamedArea northernEurope = TdwgArea.getAreaByTdwgAbbreviation("10");
137 // assert britain != null : "NamedArea must exist";
138 // assert northernEurope != null : "NamedArea must exist";
140 // assertEquals("Northern Europe should be TDWG Level 2",northernEurope.getLevel(),NamedAreaLevel.TDWG_LEVEL2());
141 // assertEquals("Britain should be TDWG Level 3",britain.getLevel(),NamedAreaLevel.TDWG_LEVEL3());
145 public void testUtf8(){
146 DefaultTermInitializer initializer
= new DefaultTermInitializer();
147 initializer
.initialize();
148 NamedArea saoTome
= TdwgArea
.getTermByUuid(UUID
.fromString("c64e07cc-0a58-44b3-ac91-c216d1b91c1f"));
149 assertEquals("Utf8 error", "S\u00E3o Tom\u00E9", saoTome
.getLabel());
156 // public void getHirarchichalAreasTest(){
157 // //NamedArea area0 = TdwgArea.getAreaByTdwgLabel("Spain");
158 // //System.out.println(area0.getLabel().toString());
159 // //NamedArea partof = area0.getPartOf();
160 // //System.out.println(partof.getLevel().getLabel());
161 //// NamedAreaLevel level = area0.getLevel();
162 //// System.out.println(level.getLabel().toString());
163 //// System.out.println(getAreaLabelForTDWGLevel(1, area0));
164 //// System.out.println(getAreaLabelForTDWGLevel(2, area0));
165 //// System.out.println(getAreaLabelForTDWGLevel(3, area0));
167 // //creating levels to omit
168 // Set<NamedAreaLevel> omitLevels = new HashSet<NamedAreaLevel>();
169 // NamedAreaLevel level = NamedAreaLevel.TDWG_LEVEL2();
170 // omitLevels.add(level);
172 // //creating and filling the list
173 // List<NamedArea> areaList = new ArrayList<NamedArea>();
174 // NamedArea area1 = TdwgArea.getAreaByTdwgLabel("Spain");
175 // areaList.add(area1);
176 // NamedArea area2 = TdwgArea.getAreaByTdwgLabel("Germany");
177 // areaList.add(area2);
178 // NamedArea area3 = TdwgArea.getAreaByTdwgLabel("France");
179 // areaList.add(area3);
180 // NamedArea area4 = TdwgArea.getAreaByTdwgLabel("Italy");
181 // areaList.add(area4);
182 // NamedArea area5 = TdwgArea.getAreaByTdwgLabel("Croatia");
183 // areaList.add(area5);
184 // NamedArea area6 = TdwgArea.getAreaByTdwgLabel("Portugal");
185 // areaList.add(area6);
187 // //System.out.println(areaListToString(areaList));
189 // NamedAreaTree tree = new NamedAreaTree();
190 // tree.merge(areaList, omitLevels);
192 // for (NamedArea area : areaList) {
193 // List<NamedArea> levelList = area.getAllLevelList();
194 // tree.merge(levelList);
195 // //System.out.println(areaListToString(levelList));
198 // System.out.println(tree.toString());
199 // tree.sortChildren();
200 // System.out.println(tree.toString());
202 // List<NamedArea> areaList2 = new ArrayList<NamedArea>();
203 // NamedArea area7 = TdwgArea.getAreaByTdwgLabel("Chita");
204 // areaList2.add(area7);
205 // NamedArea area8 = TdwgArea.getAreaByTdwgLabel("Buryatiya");
206 // areaList2.add(area8);
207 // NamedArea area9 = TdwgArea.getAreaByTdwgLabel("Philippines");
208 // areaList2.add(area9);
210 // tree.merge(areaList2, omitLevels);
211 // tree.sortChildren();
212 // System.out.println(tree.toString());
214 // List<Distribution> distList = new ArrayList<Distribution>();
215 // Distribution dist1 = Distribution.NewInstance(area1, null);
216 // distList.add(dist1);
217 // Distribution dist2 = Distribution.NewInstance(area2, null);
218 // distList.add(dist2);
219 // Distribution dist3 = Distribution.NewInstance(area3, null);
220 // distList.add(dist3);
221 // Distribution dist4 = Distribution.NewInstance(area4, null);
222 // distList.add(dist4);
223 // Distribution dist5 = Distribution.NewInstance(area5, null);
224 // distList.add(dist5);
225 // Distribution dist6 = Distribution.NewInstance(area6, null);
226 // distList.add(dist6);
228 // DistributionTree distTree = new DistributionTree();
229 // distTree.merge(distList, omitLevels);
231 // List<Distribution> distList2 = new ArrayList<Distribution>();
232 // Distribution dist7 = Distribution.NewInstance(area7, null);
233 // distList2.add(dist7);
234 // Distribution dist8 = Distribution.NewInstance(area8, null);
235 // distList2.add(dist8);
236 // Distribution dist9 = Distribution.NewInstance(area9, null);
237 // distList2.add(dist9);
238 // distTree.merge(distList2, omitLevels);
239 // distTree.sortChildren();
240 // System.out.println("## DISTRIBUTION TREE ##");
241 // System.out.println(distTree.toString());
248 private void print(NamedAreaNode result) {
249 System.out.print("{" + (result == null? "" :result.toString()));
250 for (LevelNode levelNode : result.levelList){
251 System.out.print("[" + levelNode.toString() );
252 for (NamedAreaNode area : levelNode.areaList){
255 System.out.print("]" );
257 System.out.print("}");
260 public String
areaListToString (List
<NamedArea
> list
){
262 for (NamedArea namedArea
: list
) {
263 result
= result
+ " [" + namedArea
.getLabel().toString() + ", " + namedArea
.getLevel().getLabel().toString() + "]";
268 //PRE: in parameter tdwg can not be smaller than the current tdwglevel of the second parameter
269 public static NamedArea
getAreaLabelForTDWGLevel(Integer tdwgLevel
, NamedArea area
){
270 NamedArea aux
= area
;
271 while (aux
.getLevel().getLabel().toString().compareTo("TDWG Level " + tdwgLevel
.toString()) != 0) {
272 aux
= aux
.getPartOf();