Project

General

Profile

Download (8.24 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.Test;
18

    
19
import eu.etaxonomy.cdm.model.common.Language;
20
import eu.etaxonomy.cdm.model.location.NamedArea.LevelNode;
21
import eu.etaxonomy.cdm.model.location.NamedArea.NamedAreaNode;
22
import eu.etaxonomy.cdm.test.unit.EntityTestBase;
23

    
24
/**
25
 * @author a.mueller
26
 * @since 26.05.2011
27
 */
28
public class NamedAreaTest extends EntityTestBase {
29

    
30
	@SuppressWarnings("unused")
31
	private static final Logger logger = Logger.getLogger(NamedAreaTest.class);
32

    
33
	private NamedArea namedArea1;
34
	private NamedAreaLevel level1;
35
	private NamedAreaType areaType1;
36

    
37
	@Before
38
	public void setUp() throws Exception {
39
		namedArea1 = NamedArea.NewInstance("Description for Named Area 1", "Named Area 1", "NA1");
40
		level1 = NamedAreaLevel.NewInstance("Description for level 1", "Level 1", "L1");
41
		namedArea1.setLevel(level1);
42
	}
43

    
44
	@Test
45
	public void NewInstanceStringStringStringTest(){
46
		Assert.assertEquals("Description for Named Area 1", namedArea1.getDescription());
47
		Assert.assertEquals("Named Area 1", namedArea1.getLabel());
48
		Assert.assertEquals("NA1", namedArea1.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel());
49
	}
50

    
51
	@Test
52
	public void labelWithLevelTest(){
53
		Assert.assertEquals("Named Area 1 - Level 1", NamedArea.labelWithLevel(namedArea1, Language.DEFAULT()));
54
		Assert.assertEquals("Germany - Country", NamedArea.labelWithLevel(Country.GERMANY(), Language.DEFAULT()));
55
		Assert.assertEquals("Germany - TDWG Level 3", NamedArea.labelWithLevel(getAreaByTdwgAbbreviation("GER"), Language.DEFAULT()));
56
		NamedArea namedArea2 = NamedArea.NewInstance("Description for Named Area 2", "", "NA2");
57
		Assert.assertEquals("NA2 - NamedArea", NamedArea.labelWithLevel(namedArea2, Language.DEFAULT()));
58
		NamedArea namedArea3 = NamedArea.NewInstance("Description for Named Area 3", null, " ");
59
		Assert.assertEquals("Description for Named Area 3 - NamedArea", NamedArea.labelWithLevel(namedArea3, Language.DEFAULT()));
60

    
61
		//TODO include Vocabulay information
62
	}
63

    
64
	@Test
65
	public void getHiearchieListTest(){
66
		//Create example data
67
		List<NamedArea> list = new ArrayList<>();
68
		NamedArea germanyL4 = getAreaByTdwgAbbreviation("GER-OO");
69
		Assert.assertNotNull("Prerequisite: Germany should not be null", germanyL4);
70
		list.add(germanyL4);
71
		NamedArea franceL3 = getAreaByTdwgAbbreviation("FRA");
72
		Assert.assertNotNull("Prerequisite: France should not be null", germanyL4);
73
		list.add(franceL3);
74
		NamedArea europe = getAreaByTdwgAbbreviation("1");
75
		NamedArea middleEurope = getAreaByTdwgAbbreviation("11");
76
//		System.out.println(middleEurope.getLabel());
77
		NamedArea southWestEurope = getAreaByTdwgAbbreviation("12");
78
//		System.out.println(southWestEurope.getLabel());
79
		NamedArea germanyL3 = getAreaByTdwgAbbreviation("GER");
80

    
81
		NamedArea newArea1 = NamedArea.NewInstance("New Area1 Description", "New Area1", "NA1");
82
		list.add(newArea1);
83
		NamedArea newArea2 = NamedArea.NewInstance("New Area2 Description", "New Area2", "NA2");
84
		NamedAreaLevel newLevel = NamedAreaLevel.NewInstance("New Level Description", "New level", "NL");
85
		newArea2.setLevel(newLevel);
86
		list.add(newArea2);
87

    
88
		NamedArea newGermanSubAreaAndLevel = NamedArea.NewInstance("New German Level 3 subarea", "New GER subarea", "GER-L5");
89
		NamedAreaLevel newGermanLevel5 = NamedAreaLevel.NewInstance("New German Level 5 Description", "GER Level 5", "GERL5");
90
		newGermanSubAreaAndLevel.setLevel(newGermanLevel5);
91
		germanyL3.addIncludes(newGermanSubAreaAndLevel);
92
//		germanyL3.getLevel().addIncludes(newGermanLevel5);
93
		list.add(newGermanSubAreaAndLevel);
94

    
95
		NamedAreaNode root = NamedArea.getHiearchieList(list);
96

    
97
		//level 0
98
		Assert.assertNull("Root should not have an area", root.area);
99
		//level1
100
		Assert.assertEquals("level1 list should include 3 levels", 3, root.levelList.size());
101
		LevelNode firstLevel1 = root.levelList.get(0);
102
		Assert.assertEquals(europe.getLevel(), firstLevel1.level);
103
		Assert.assertEquals("There should be 1 level1 area", 1, firstLevel1.areaList.size());
104
		NamedAreaNode level1AreaNode = firstLevel1.areaList.get(0);
105
		Assert.assertEquals("Level 1 area should be Europe", europe, level1AreaNode.area);
106
		LevelNode secondLevel1 = root.levelList.get(1);
107
		Assert.assertEquals(null, secondLevel1.level);
108

    
109
			//level 2
110
			Assert.assertEquals("level2 list should not be empty", 1, level1AreaNode.levelList.size());
111
			LevelNode firstLevel2 = level1AreaNode.levelList.get(0);
112
			Assert.assertEquals(middleEurope.getLevel(), firstLevel2.level);
113
			Assert.assertEquals("There should be 2 level2 area", 2, firstLevel2.areaList.size());
114
			NamedAreaNode middleEuropeAreaNode = firstLevel2.areaList.get(0);
115
			NamedAreaNode southWestAreaNode = firstLevel2.areaList.get(1);
116
			Assert.assertEquals("First level2 area should be MiddleEurope (11)", middleEurope, middleEuropeAreaNode.area);
117
			Assert.assertEquals("Second level2 area should be SouthWesternEurope (12)", southWestEurope, southWestAreaNode.area);
118
			//level 3
119
				//Middle Europe
120
				Assert.assertEquals("level3 list for Middle Europe should not be empty", 1, middleEuropeAreaNode.levelList.size());
121
				LevelNode middleEuropeLevel3 = middleEuropeAreaNode.levelList.get(0);
122
				Assert.assertEquals(germanyL3.getLevel(), middleEuropeLevel3.level);
123
				Assert.assertEquals("There should be 1 middle europe area", 1, middleEuropeLevel3.areaList.size());
124
				NamedAreaNode middleEuropeLevel3Area = middleEuropeLevel3.areaList.get(0);
125
				Assert.assertEquals("Middle Europe level 3 area should be GER", germanyL3, middleEuropeLevel3Area.area);
126
					//level 4
127
					Assert.assertEquals("sublevel list for GER should have 2 levels, TDWG level 4 and the new GER-L5", 2, middleEuropeLevel3Area.levelList.size());
128
					LevelNode germanyLevel3SubLevels = middleEuropeLevel3Area.levelList.get(0);
129
					Assert.assertEquals("Germany Level 3 sublevel should be level4", germanyL4.getLevel(), germanyLevel3SubLevels.level);
130
					Assert.assertEquals("There should be 1 GER subarea", 1, germanyLevel3SubLevels.areaList.size());
131
					NamedAreaNode germanyL3FirstSubArea = germanyLevel3SubLevels.areaList.get(0);
132
					Assert.assertEquals("Germany level 3 subarea should be GER-OO", germanyL4, germanyL3FirstSubArea.area);
133
					Assert.assertEquals("Germany level 4 area should not have sublevels", 0, germanyL3FirstSubArea.levelList.size());
134
					//level5
135
					LevelNode germanyLevel5Levels = middleEuropeLevel3Area.levelList.get(1);
136
					Assert.assertEquals("Second Germany Level 3 sublevel should be GERL5", newGermanLevel5, germanyLevel5Levels.level);
137
					Assert.assertEquals("There should be 1 GERL5 area", 1, germanyLevel5Levels.areaList.size());
138
					NamedAreaNode germanyL3SecondSubArea = germanyLevel5Levels.areaList.get(0);
139
					Assert.assertEquals("Second Germany level 3 subarea should be GER-L5", newGermanSubAreaAndLevel, germanyL3SecondSubArea.area);
140
					Assert.assertEquals("GER-L5 should not have sublevels", 0, germanyL3SecondSubArea.levelList.size());
141

    
142
				//SouthWest Europe
143
				Assert.assertEquals("level3 list for Southwestern Europe should not be empty", 1, southWestAreaNode.levelList.size());
144
				LevelNode southWestLevel3 = southWestAreaNode.levelList.get(0);
145
				Assert.assertEquals(franceL3.getLevel(), southWestLevel3.level);
146
				Assert.assertEquals("There should be 1 south west european area", 1, southWestLevel3.areaList.size());
147
				NamedAreaNode southWestLevel3Area = southWestLevel3.areaList.get(0);
148
				Assert.assertEquals("South Western Europe level 3 area should be FRA", franceL3, southWestLevel3Area.area);
149
				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());
150

    
151
//		System.out.println(root.toString(true, 0));
152
	}
153

    
154
	private NamedArea getAreaByTdwgAbbreviation(String tdwgAbbrev){
155
		return NamedArea.getAreaByTdwgAbbreviation(tdwgAbbrev);
156
	}
157
}
(1-1/3)