Project

General

Profile

Download (8.6 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2009 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
package eu.etaxonomy.cdm.model.location;
10

    
11
import java.util.ArrayList;
12
import java.util.List;
13

    
14
import org.apache.log4j.Logger;
15
import org.junit.Assert;
16
import org.junit.Before;
17
import org.junit.BeforeClass;
18
import org.junit.Test;
19

    
20
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
21
import eu.etaxonomy.cdm.model.common.Language;
22
import eu.etaxonomy.cdm.model.location.NamedArea.LevelNode;
23
import eu.etaxonomy.cdm.model.location.NamedArea.NamedAreaNode;
24

    
25
/**
26
 * @author a.mueller
27
 \* @since 26.05.2011
28
 *
29
 */
30
public class NamedAreaTest {
31
	@SuppressWarnings("unused")
32
	private static final Logger logger = Logger.getLogger(NamedAreaTest.class);
33
	
34
	private NamedArea namedArea1;
35
	private NamedAreaLevel level1;
36
	private NamedAreaType areaType1;
37
	
38
	
39
	/**
40
	 * @throws java.lang.Exception
41
	 */
42
	@BeforeClass
43
	public static void setUpBeforeClass() throws Exception {
44
		DefaultTermInitializer initializer = new DefaultTermInitializer();
45
		initializer.initialize();
46
	}
47

    
48
	/**
49
	 * @throws java.lang.Exception
50
	 */
51
	@Before
52
	public void setUp() throws Exception {
53
		namedArea1 = NamedArea.NewInstance("Description for Named Area 1", "Named Area 1", "NA1");
54
		level1 = NamedAreaLevel.NewInstance("Description for level 1", "Level 1", "L1");
55
		namedArea1.setLevel(level1);
56
	}
57
	
58
	@Test
59
	public void NewInstanceStringStringStringTest(){
60
		Assert.assertEquals("Description for Named Area 1", namedArea1.getDescription());
61
		Assert.assertEquals("Named Area 1", namedArea1.getLabel());
62
		Assert.assertEquals("NA1", namedArea1.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel());
63
	}
64

    
65
	
66
	@Test
67
	public void labelWithLevelTest(){
68
		Assert.assertEquals("Named Area 1 - Level 1", NamedArea.labelWithLevel(namedArea1, Language.DEFAULT()));
69
		Assert.assertEquals("Germany - Country", NamedArea.labelWithLevel(Country.GERMANY(), Language.DEFAULT()));
70
		Assert.assertEquals("Germany - TDWG Level 3", NamedArea.labelWithLevel(getAreaByTdwgAbbreviation("GER"), Language.DEFAULT()));
71
		NamedArea namedArea2 = NamedArea.NewInstance("Description for Named Area 2", "", "NA2");
72
		Assert.assertEquals("NA2 - NamedArea", NamedArea.labelWithLevel(namedArea2, Language.DEFAULT()));
73
		NamedArea namedArea3 = NamedArea.NewInstance("Description for Named Area 3", null, " ");
74
		Assert.assertEquals("Description for Named Area 3 - NamedArea", NamedArea.labelWithLevel(namedArea3, Language.DEFAULT()));
75
		
76
		//TODO include Vocabulay information
77
	}
78
	
79
	@Test
80
	public void getHiearchieListTest(){
81
		//Create example data
82
		List<NamedArea> list = new ArrayList<NamedArea>(); 
83
		NamedArea germanyL4 = getAreaByTdwgAbbreviation("GER-OO");
84
		Assert.assertNotNull("Prerequisite: Germany should not be null", germanyL4);
85
		list.add(germanyL4);
86
		NamedArea franceL3 = getAreaByTdwgAbbreviation("FRA");
87
		Assert.assertNotNull("Prerequisite: France should not be null", germanyL4);
88
		list.add(franceL3);
89
		NamedArea europe = getAreaByTdwgAbbreviation("1");
90
		NamedArea middleEurope = getAreaByTdwgAbbreviation("11");
91
//		System.out.println(middleEurope.getLabel());
92
		NamedArea southWestEurope = getAreaByTdwgAbbreviation("12");
93
//		System.out.println(southWestEurope.getLabel());
94
		NamedArea germanyL3 = getAreaByTdwgAbbreviation("GER");
95
		
96
		NamedArea newArea1 = NamedArea.NewInstance("New Area1 Description", "New Area1", "NA1");
97
		list.add(newArea1);
98
		NamedArea newArea2 = NamedArea.NewInstance("New Area2 Description", "New Area2", "NA2");
99
		NamedAreaLevel newLevel = NamedAreaLevel.NewInstance("New Level Description", "New level", "NL");
100
		newArea2.setLevel(newLevel);
101
		list.add(newArea2);
102
		
103
		NamedArea newGermanSubAreaAndLevel = NamedArea.NewInstance("New German Level 3 subarea", "New GER subarea", "GER-L5");
104
		NamedAreaLevel newGermanLevel5 = NamedAreaLevel.NewInstance("New German Level 5 Description", "GER Level 5", "GERL5");
105
		newGermanSubAreaAndLevel.setLevel(newGermanLevel5);
106
		germanyL3.addIncludes(newGermanSubAreaAndLevel);
107
//		germanyL3.getLevel().addIncludes(newGermanLevel5);
108
		list.add(newGermanSubAreaAndLevel);
109
		
110
		
111
		
112
		
113
		NamedAreaNode root = NamedArea.getHiearchieList(list);
114
		
115
		//level 0
116
		Assert.assertNull("Root should not have an area", root.area);
117
		//level1
118
		Assert.assertEquals("level1 list should include 3 levels", 3, root.levelList.size());
119
		LevelNode firstLevel1 = root.levelList.get(0);
120
		Assert.assertEquals(europe.getLevel(), firstLevel1.level);
121
		Assert.assertEquals("There should be 1 level1 area", 1, firstLevel1.areaList.size());
122
		NamedAreaNode level1AreaNode = firstLevel1.areaList.get(0);
123
		Assert.assertEquals("Level 1 area should be Europe", europe, level1AreaNode.area);
124
		LevelNode secondLevel1 = root.levelList.get(1);
125
		Assert.assertEquals(null, secondLevel1.level);
126
		
127
			//level 2
128
			Assert.assertEquals("level2 list should not be empty", 1, level1AreaNode.levelList.size());
129
			LevelNode firstLevel2 = level1AreaNode.levelList.get(0);
130
			Assert.assertEquals(middleEurope.getLevel(), firstLevel2.level);
131
			Assert.assertEquals("There should be 2 level2 area", 2, firstLevel2.areaList.size());
132
			NamedAreaNode middleEuropeAreaNode = firstLevel2.areaList.get(0);
133
			NamedAreaNode southWestAreaNode = firstLevel2.areaList.get(1);
134
			Assert.assertEquals("First level2 area should be MiddleEurope (11)", middleEurope, middleEuropeAreaNode.area);
135
			Assert.assertEquals("Second level2 area should be SouthWesternEurope (12)", southWestEurope, southWestAreaNode.area);
136
			//level 3
137
				//Middle Europe
138
				Assert.assertEquals("level3 list for Middle Europe should not be empty", 1, middleEuropeAreaNode.levelList.size());
139
				LevelNode middleEuropeLevel3 = middleEuropeAreaNode.levelList.get(0);
140
				Assert.assertEquals(germanyL3.getLevel(), middleEuropeLevel3.level);
141
				Assert.assertEquals("There should be 1 middle europe area", 1, middleEuropeLevel3.areaList.size());
142
				NamedAreaNode middleEuropeLevel3Area = middleEuropeLevel3.areaList.get(0);
143
				Assert.assertEquals("Middle Europe level 3 area should be GER", germanyL3, middleEuropeLevel3Area.area);
144
					//level 4
145
					Assert.assertEquals("sublevel list for GER should have 2 levels, TDWG level 4 and the new GER-L5", 2, middleEuropeLevel3Area.levelList.size());
146
					LevelNode germanyLevel3SubLevels = middleEuropeLevel3Area.levelList.get(0);
147
					Assert.assertEquals("Germany Level 3 sublevel should be level4", germanyL4.getLevel(), germanyLevel3SubLevels.level);
148
					Assert.assertEquals("There should be 1 GER subarea", 1, germanyLevel3SubLevels.areaList.size());
149
					NamedAreaNode germanyL3FirstSubArea = germanyLevel3SubLevels.areaList.get(0);
150
					Assert.assertEquals("Germany level 3 subarea should be GER-OO", germanyL4, germanyL3FirstSubArea.area);
151
					Assert.assertEquals("Germany level 4 area should not have sublevels", 0, germanyL3FirstSubArea.levelList.size());
152
					//level5
153
					LevelNode germanyLevel5Levels = middleEuropeLevel3Area.levelList.get(1);
154
					Assert.assertEquals("Second Germany Level 3 sublevel should be GERL5", newGermanLevel5, germanyLevel5Levels.level);
155
					Assert.assertEquals("There should be 1 GERL5 area", 1, germanyLevel5Levels.areaList.size());
156
					NamedAreaNode germanyL3SecondSubArea = germanyLevel5Levels.areaList.get(0);
157
					Assert.assertEquals("Second Germany level 3 subarea should be GER-L5", newGermanSubAreaAndLevel, germanyL3SecondSubArea.area);
158
					Assert.assertEquals("GER-L5 should not have sublevels", 0, germanyL3SecondSubArea.levelList.size());
159
					
160
				
161
				//SouthWest Europe
162
				Assert.assertEquals("level3 list for Southwestern Europe should not be empty", 1, southWestAreaNode.levelList.size());
163
				LevelNode southWestLevel3 = southWestAreaNode.levelList.get(0);
164
				Assert.assertEquals(franceL3.getLevel(), southWestLevel3.level);
165
				Assert.assertEquals("There should be 1 south west european area", 1, southWestLevel3.areaList.size());
166
				NamedAreaNode southWestLevel3Area = southWestLevel3.areaList.get(0);
167
				Assert.assertEquals("South Western Europe level 3 area should be FRA", franceL3, southWestLevel3Area.area);
168
				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());
169
				
170
			
171
		
172
		System.out.println(root.toString(true, 0));	
173
	}
174
	
175
	private NamedArea getAreaByTdwgAbbreviation(String tdwgAbbrev){
176
		return NamedArea.getAreaByTdwgAbbreviation(tdwgAbbrev);
177
	}
178

    
179
}
(1-1/3)