Project

General

Profile

Download (8.57 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(1-1/3)