1
|
// $Id$
|
2
|
/**
|
3
|
* Copyright (C) 2009 EDIT
|
4
|
* European Distributed Institute of Taxonomy
|
5
|
* http://www.e-taxonomy.eu
|
6
|
*
|
7
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
8
|
* See LICENSE.TXT at the top of this package for the full license terms.
|
9
|
*/
|
10
|
package eu.etaxonomy.cdm.model.location;
|
11
|
|
12
|
import java.util.ArrayList;
|
13
|
import java.util.List;
|
14
|
|
15
|
import org.apache.log4j.Logger;
|
16
|
import org.junit.Assert;
|
17
|
import org.junit.Before;
|
18
|
import org.junit.BeforeClass;
|
19
|
import org.junit.Test;
|
20
|
|
21
|
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
|
22
|
import eu.etaxonomy.cdm.model.common.Language;
|
23
|
import eu.etaxonomy.cdm.model.location.NamedArea.LevelNode;
|
24
|
import eu.etaxonomy.cdm.model.location.NamedArea.NamedAreaNode;
|
25
|
|
26
|
/**
|
27
|
* @author a.mueller
|
28
|
* @date 26.05.2011
|
29
|
*
|
30
|
*/
|
31
|
public class NamedAreaTest {
|
32
|
@SuppressWarnings("unused")
|
33
|
private static final Logger logger = Logger.getLogger(NamedAreaTest.class);
|
34
|
|
35
|
private NamedArea namedArea1;
|
36
|
private NamedAreaLevel level1;
|
37
|
private NamedAreaType areaType1;
|
38
|
|
39
|
|
40
|
/**
|
41
|
* @throws java.lang.Exception
|
42
|
*/
|
43
|
@BeforeClass
|
44
|
public static void setUpBeforeClass() throws Exception {
|
45
|
DefaultTermInitializer initializer = new DefaultTermInitializer();
|
46
|
initializer.initialize();
|
47
|
}
|
48
|
|
49
|
/**
|
50
|
* @throws java.lang.Exception
|
51
|
*/
|
52
|
@Before
|
53
|
public void setUp() throws Exception {
|
54
|
namedArea1 = NamedArea.NewInstance("Description for Named Area 1", "Named Area 1", "NA1");
|
55
|
level1 = NamedAreaLevel.NewInstance("Description for level 1", "Level 1", "L1");
|
56
|
namedArea1.setLevel(level1);
|
57
|
}
|
58
|
|
59
|
@Test
|
60
|
public void NewInstanceStringStringStringTest(){
|
61
|
Assert.assertEquals("Description for Named Area 1", namedArea1.getDescription());
|
62
|
Assert.assertEquals("Named Area 1", namedArea1.getLabel());
|
63
|
Assert.assertEquals("NA1", namedArea1.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel());
|
64
|
}
|
65
|
|
66
|
|
67
|
@Test
|
68
|
public void labelWithLevelTest(){
|
69
|
Assert.assertEquals("Named Area 1 - Level 1", NamedArea.labelWithLevel(namedArea1, Language.DEFAULT()));
|
70
|
Assert.assertEquals("Germany - WaterbodyOrCountry", NamedArea.labelWithLevel(WaterbodyOrCountry.GERMANY(), Language.DEFAULT()));
|
71
|
Assert.assertEquals("Germany - TDWG Level 3", NamedArea.labelWithLevel(TdwgArea.getAreaByTdwgAbbreviation("GER"), Language.DEFAULT()));
|
72
|
NamedArea namedArea2 = NamedArea.NewInstance("Description for Named Area 2", "", "NA2");
|
73
|
Assert.assertEquals("NA2 - NamedArea", NamedArea.labelWithLevel(namedArea2, Language.DEFAULT()));
|
74
|
NamedArea namedArea3 = NamedArea.NewInstance("Description for Named Area 3", null, " ");
|
75
|
Assert.assertEquals("Description for Named Area 3 - NamedArea", NamedArea.labelWithLevel(namedArea3, Language.DEFAULT()));
|
76
|
|
77
|
//TODO include Vocabulay information
|
78
|
}
|
79
|
|
80
|
@Test
|
81
|
public void getHiearchieListTest(){
|
82
|
//Create example data
|
83
|
List<NamedArea> list = new ArrayList<NamedArea>();
|
84
|
NamedArea germanyL4 = TdwgArea.getAreaByTdwgAbbreviation("GER-OO");
|
85
|
Assert.assertNotNull("Prerequisite: Germany should not be null", germanyL4);
|
86
|
list.add(germanyL4);
|
87
|
NamedArea franceL3 = TdwgArea.getAreaByTdwgAbbreviation("FRA");
|
88
|
Assert.assertNotNull("Prerequisite: France should not be null", germanyL4);
|
89
|
list.add(franceL3);
|
90
|
NamedArea europe = TdwgArea.getAreaByTdwgAbbreviation("1");
|
91
|
NamedArea middleEurope = TdwgArea.getAreaByTdwgAbbreviation("11");
|
92
|
// System.out.println(middleEurope.getLabel());
|
93
|
NamedArea southWestEurope = TdwgArea.getAreaByTdwgAbbreviation("12");
|
94
|
// System.out.println(southWestEurope.getLabel());
|
95
|
NamedArea germanyL3 = TdwgArea.getAreaByTdwgAbbreviation("GER");
|
96
|
|
97
|
NamedArea newArea1 = NamedArea.NewInstance("New Area1 Description", "New Area1", "NA1");
|
98
|
list.add(newArea1);
|
99
|
NamedArea newArea2 = NamedArea.NewInstance("New Area2 Description", "New Area2", "NA2");
|
100
|
NamedAreaLevel newLevel = NamedAreaLevel.NewInstance("New Level Description", "New level", "NL");
|
101
|
newArea2.setLevel(newLevel);
|
102
|
list.add(newArea2);
|
103
|
|
104
|
NamedArea newGermanSubAreaAndLevel = NamedArea.NewInstance("New German Level 3 subarea", "New GER subarea", "GER-L5");
|
105
|
NamedAreaLevel newGermanLevel5 = NamedAreaLevel.NewInstance("New German Level 5 Description", "GER Level 5", "GERL5");
|
106
|
newGermanSubAreaAndLevel.setLevel(newGermanLevel5);
|
107
|
germanyL3.addIncludes(newGermanSubAreaAndLevel);
|
108
|
// germanyL3.getLevel().addIncludes(newGermanLevel5);
|
109
|
list.add(newGermanSubAreaAndLevel);
|
110
|
|
111
|
|
112
|
|
113
|
|
114
|
NamedAreaNode root = NamedArea.getHiearchieList(list);
|
115
|
|
116
|
//level 0
|
117
|
Assert.assertNull("Root should not have an area", root.area);
|
118
|
//level1
|
119
|
Assert.assertEquals("level1 list should include 3 levels", 3, root.levelList.size());
|
120
|
LevelNode firstLevel1 = root.levelList.get(0);
|
121
|
Assert.assertEquals(europe.getLevel(), firstLevel1.level);
|
122
|
Assert.assertEquals("There should be 1 level1 area", 1, firstLevel1.areaList.size());
|
123
|
NamedAreaNode level1AreaNode = firstLevel1.areaList.get(0);
|
124
|
Assert.assertEquals("Level 1 area should be Europe", europe, level1AreaNode.area);
|
125
|
LevelNode secondLevel1 = root.levelList.get(1);
|
126
|
Assert.assertEquals(null, secondLevel1.level);
|
127
|
|
128
|
//level 2
|
129
|
Assert.assertEquals("level2 list should not be empty", 1, level1AreaNode.levelList.size());
|
130
|
LevelNode firstLevel2 = level1AreaNode.levelList.get(0);
|
131
|
Assert.assertEquals(middleEurope.getLevel(), firstLevel2.level);
|
132
|
Assert.assertEquals("There should be 2 level2 area", 2, firstLevel2.areaList.size());
|
133
|
NamedAreaNode middleEuropeAreaNode = firstLevel2.areaList.get(0);
|
134
|
NamedAreaNode southWestAreaNode = firstLevel2.areaList.get(1);
|
135
|
Assert.assertEquals("First level2 area should be MiddleEurope (11)", middleEurope, middleEuropeAreaNode.area);
|
136
|
Assert.assertEquals("Second level2 area should be SouthWesternEurope (12)", southWestEurope, southWestAreaNode.area);
|
137
|
//level 3
|
138
|
//Middle Europe
|
139
|
Assert.assertEquals("level3 list for Middle Europe should not be empty", 1, middleEuropeAreaNode.levelList.size());
|
140
|
LevelNode middleEuropeLevel3 = middleEuropeAreaNode.levelList.get(0);
|
141
|
Assert.assertEquals(germanyL3.getLevel(), middleEuropeLevel3.level);
|
142
|
Assert.assertEquals("There should be 1 middle europe area", 1, middleEuropeLevel3.areaList.size());
|
143
|
NamedAreaNode middleEuropeLevel3Area = middleEuropeLevel3.areaList.get(0);
|
144
|
Assert.assertEquals("Middle Europe level 3 area should be GER", germanyL3, middleEuropeLevel3Area.area);
|
145
|
//level 4
|
146
|
Assert.assertEquals("sublevel list for GER should have 2 levels, TDWG level 4 and the new GER-L5", 2, middleEuropeLevel3Area.levelList.size());
|
147
|
LevelNode germanyLevel3SubLevels = middleEuropeLevel3Area.levelList.get(0);
|
148
|
Assert.assertEquals("Germany Level 3 sublevel should be level4", germanyL4.getLevel(), germanyLevel3SubLevels.level);
|
149
|
Assert.assertEquals("There should be 1 GER subarea", 1, germanyLevel3SubLevels.areaList.size());
|
150
|
NamedAreaNode germanyL3FirstSubArea = germanyLevel3SubLevels.areaList.get(0);
|
151
|
Assert.assertEquals("Germany level 3 subarea should be GER-OO", germanyL4, germanyL3FirstSubArea.area);
|
152
|
Assert.assertEquals("Germany level 4 area should not have sublevels", 0, germanyL3FirstSubArea.levelList.size());
|
153
|
//level5
|
154
|
LevelNode germanyLevel5Levels = middleEuropeLevel3Area.levelList.get(1);
|
155
|
Assert.assertEquals("Second Germany Level 3 sublevel should be GERL5", newGermanLevel5, germanyLevel5Levels.level);
|
156
|
Assert.assertEquals("There should be 1 GERL5 area", 1, germanyLevel5Levels.areaList.size());
|
157
|
NamedAreaNode germanyL3SecondSubArea = germanyLevel5Levels.areaList.get(0);
|
158
|
Assert.assertEquals("Second Germany level 3 subarea should be GER-L5", newGermanSubAreaAndLevel, germanyL3SecondSubArea.area);
|
159
|
Assert.assertEquals("GER-L5 should not have sublevels", 0, germanyL3SecondSubArea.levelList.size());
|
160
|
|
161
|
|
162
|
//SouthWest Europe
|
163
|
Assert.assertEquals("level3 list for Southwestern Europe should not be empty", 1, southWestAreaNode.levelList.size());
|
164
|
LevelNode southWestLevel3 = southWestAreaNode.levelList.get(0);
|
165
|
Assert.assertEquals(franceL3.getLevel(), southWestLevel3.level);
|
166
|
Assert.assertEquals("There should be 1 south west european area", 1, southWestLevel3.areaList.size());
|
167
|
NamedAreaNode southWestLevel3Area = southWestLevel3.areaList.get(0);
|
168
|
Assert.assertEquals("South Western Europe level 3 area should be FRA", franceL3, southWestLevel3Area.area);
|
169
|
Assert.assertEquals("France level 3 should not have sublevels (in this hierarchie as France level 4 areas were not added to the area list)", 0, southWestLevel3Area.levelList.size());
|
170
|
|
171
|
|
172
|
|
173
|
System.out.println(root.toString(true, 0));
|
174
|
|
175
|
|
176
|
}
|
177
|
|
178
|
|
179
|
}
|