3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.cdm
.ext
.geo
;
13 import static org
.junit
.Assert
.assertTrue
;
15 import java
.awt
.Color
;
16 import java
.util
.ArrayList
;
17 import java
.util
.HashMap
;
18 import java
.util
.HashSet
;
19 import java
.util
.List
;
22 import java
.util
.UUID
;
24 import org
.apache
.log4j
.Logger
;
25 import org
.junit
.After
;
26 import org
.junit
.AfterClass
;
27 import org
.junit
.Before
;
28 import org
.junit
.BeforeClass
;
29 import org
.junit
.Test
;
31 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
32 import eu
.etaxonomy
.cdm
.ext
.geo
.EditGeoServiceUtilities
;
33 import eu
.etaxonomy
.cdm
.model
.common
.DefaultTermInitializer
;
34 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
35 import eu
.etaxonomy
.cdm
.model
.common
.TermVocabulary
;
36 import eu
.etaxonomy
.cdm
.model
.description
.AbsenceTerm
;
37 import eu
.etaxonomy
.cdm
.model
.description
.Distribution
;
38 import eu
.etaxonomy
.cdm
.model
.description
.PresenceAbsenceTermBase
;
39 import eu
.etaxonomy
.cdm
.model
.description
.PresenceTerm
;
40 import eu
.etaxonomy
.cdm
.model
.location
.NamedArea
;
41 import eu
.etaxonomy
.cdm
.model
.location
.NamedAreaLevel
;
42 import eu
.etaxonomy
.cdm
.model
.location
.NamedAreaType
;
43 import eu
.etaxonomy
.cdm
.model
.location
.TdwgArea
;
50 public class EditGeoServiceTest
{
51 @SuppressWarnings("unused")
52 private static final Logger logger
= Logger
.getLogger(EditGeoServiceTest
.class);
55 * @throws java.lang.Exception
58 public static void setUpBeforeClass() throws Exception
{
59 DefaultTermInitializer initializer
= new DefaultTermInitializer();
60 initializer
.initialize();
64 * @throws java.lang.Exception
67 public static void tearDownAfterClass() throws Exception
{
71 * @throws java.lang.Exception
74 public void setUp() throws Exception
{
78 * @throws java.lang.Exception
81 public void tearDown() throws Exception
{
84 //******************************************** TESTS**************
86 public void testGetWebServiceUrlTdwg() {
87 //String webServiceUrl = "http://www.test.de/webservice";
88 Set
<Distribution
> distributions
= new HashSet
<Distribution
>();
89 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("SPA"), PresenceTerm
.PRESENT()));
90 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("GER"), PresenceTerm
.INTRODUCED()));
91 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("14"), PresenceTerm
.CULTIVATED()));
92 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("BGM"), AbsenceTerm
.ABSENT()));
93 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("FRA"), AbsenceTerm
.ABSENT()));
94 distributions
.add(Distribution
.NewInstance(TdwgArea
.getAreaByTdwgAbbreviation("IND-AP"), PresenceTerm
.PRESENT()));
96 Map
<PresenceAbsenceTermBase
<?
>, Color
> presenceAbsenceColorMap
= new HashMap
<PresenceAbsenceTermBase
<?
>, Color
>();
97 presenceAbsenceColorMap
.put(PresenceTerm
.PRESENT(), Color
.BLUE
);
98 presenceAbsenceColorMap
.put(PresenceTerm
.INTRODUCED(), Color
.BLACK
);
99 presenceAbsenceColorMap
.put(PresenceTerm
.CULTIVATED(), Color
.YELLOW
);
100 presenceAbsenceColorMap
.put(AbsenceTerm
.ABSENT(), Color
.DARK_GRAY
);
101 String backLayer
="";
102 presenceAbsenceColorMap
= null;
103 String bbox
="-20,0,120,70";
104 List
<Language
> languages
= new ArrayList
<Language
>();
106 String result
= EditGeoServiceUtilities
.getDistributionServiceRequestParameterString(distributions
, presenceAbsenceColorMap
, 600, 300, bbox
,backLayer
, languages
);
107 //TODO Set semantics is not determined
108 //String expected = "http://www.test.de/webservice?l=tdwg3&ad=tdwg3:a:GER|b:OKL|c:BGM|b:SPA|d:FRA&as=a:005500|b:00FF00|c:FFFFFF|d:001100&bbox=-20,40,40,40&ms=400x300";
109 System
.out
.println(result
);
110 assertTrue(result
.startsWith("l="));
111 assertTrue(result
.endsWith("&ms=600,300"));
112 assertTrue(result
.matches(".*ad=tdwg[1-4].*"));
113 assertTrue(result
.matches(".*tdwg2:[a-d]:14[\\|&].*") );
114 assertTrue(result
.matches(".*[a-d]:FRA,BGM[\\|&].*") || result
.matches(".*[a-d]:BGM,FRA[\\|&].*") );
115 assertTrue(result
.matches(".*[a-d]:GER[\\|&].*") );
116 assertTrue(result
.matches(".*[a-d]:SPA[\\|&].*") );
117 assertTrue(result
.matches(".*tdwg4:[a-d]:INDAP[\\|&].*") );
118 //assertTrue(result.matches("0000ff"));
123 public void testGetWebServiceUrlCyprus() {
125 Set
<Distribution
> distributions
= new HashSet
<Distribution
>();
126 distributions
.add(Distribution
.NewInstance(divisions
.get("1"), PresenceTerm
.PRESENT()));
127 distributions
.add(Distribution
.NewInstance(divisions
.get("2"), PresenceTerm
.INTRODUCED()));
128 distributions
.add(Distribution
.NewInstance(divisions
.get("3"), PresenceTerm
.CULTIVATED()));
129 distributions
.add(Distribution
.NewInstance(divisions
.get("4"), AbsenceTerm
.ABSENT()));
130 distributions
.add(Distribution
.NewInstance(divisions
.get("5"), AbsenceTerm
.ABSENT()));
131 distributions
.add(Distribution
.NewInstance(divisions
.get("6"), PresenceTerm
.PRESENT()));
133 Map
<PresenceAbsenceTermBase
<?
>, Color
> presenceAbsenceColorMap
= new HashMap
<PresenceAbsenceTermBase
<?
>, Color
>();
134 presenceAbsenceColorMap
.put(PresenceTerm
.PRESENT(), Color
.BLUE
);
135 presenceAbsenceColorMap
.put(PresenceTerm
.INTRODUCED(), Color
.BLACK
);
136 presenceAbsenceColorMap
.put(PresenceTerm
.CULTIVATED(), Color
.YELLOW
);
137 presenceAbsenceColorMap
.put(AbsenceTerm
.ABSENT(), Color
.DARK_GRAY
);
138 String backLayer
="";
139 presenceAbsenceColorMap
= null;
140 String bbox
="-20,0,120,70";
141 List
<Language
> languages
= new ArrayList
<Language
>();
143 String result
= EditGeoServiceUtilities
.getDistributionServiceRequestParameterString(distributions
, presenceAbsenceColorMap
, 600, 300, bbox
,backLayer
, languages
);
144 //TODO Set semantics is not determined
145 //String expected = "http://www.test.de/webservice?l=tdwg3&ad=tdwg3:a:GER|b:OKL|c:BGM|b:SPA|d:FRA&as=a:005500|b:00FF00|c:FFFFFF|d:001100&bbox=-20,40,40,40&ms=400x300";
146 System
.out
.println(result
);
147 assertTrue(result
.startsWith("l="));
148 assertTrue(result
.endsWith("&ms=600,300"));
149 assertTrue(result
.matches(".*ad=cyprusdivs:bdcode:.*"));
150 assertTrue(result
.matches(".*[a-d]:5,4[\\|&].*") || result
.matches(".*[a-d]:4,5[\\|&].*") );
151 assertTrue(result
.matches(".*[a-d]:1,6[\\|&].*") || result
.matches(".*[a-d]:6,1[\\|&].*") );
152 assertTrue(result
.matches(".*[a-d]:2[\\|&].*") );
153 assertTrue(result
.matches(".*[a-d]:3[\\|&].*") );
156 public static final UUID uuidCyprusDivisionsVocabulary
= UUID
.fromString("2119f610-1f93-4d87-af28-40aeefaca100");
157 private Map
<String
, NamedArea
> divisions
= new HashMap
<String
, NamedArea
>();
159 private boolean makeCyprusAreas() {
163 NamedAreaType areaType
= NamedAreaType
.NATURAL_AREA();
164 NamedAreaLevel areaLevel
= NamedAreaLevel
.NewInstance("Cyprus Division", "Cyprus Division", null);
166 TermVocabulary areaVocabulary
= TermVocabulary
.NewInstance("Cyprus devisions", "Cyprus divisions", null, null);
167 areaVocabulary
.setUuid(uuidCyprusDivisionsVocabulary
);
169 for(int i
= 1; i
<= 8; i
++){
170 UUID divisionUuid
= getNamedAreaUuid(String
.valueOf(i
));
171 NamedArea division
= this.getNamedArea(divisionUuid
, "Division " + i
, "Cyprus: Division " + i
, String
.valueOf(i
), areaType
, areaLevel
, areaVocabulary
);
172 divisions
.put(String
.valueOf(i
), division
);
175 // indigenousStatus = (PresenceTerm)getTermService().find(CyprusTransformer.indigenousUuid);
176 // casualStatus = (PresenceTerm)getTermService().find(CyprusTransformer.casualUuid);
177 // nonInvasiveStatus = (PresenceTerm)getTermService().find(CyprusTransformer.nonInvasiveUuid);
178 // invasiveStatus = (PresenceTerm)getTermService().find(CyprusTransformer.invasiveUuid);
179 // questionableStatus = (PresenceTerm)getTermService().find(CyprusTransformer.questionableUuid);
186 public static final UUID uuidDivision1
= UUID
.fromString("ab17eee9-1abb-4ce9-a9a2-563f840cdbfc");
187 public static final UUID uuidDivision2
= UUID
.fromString("c3606165-efb7-4224-a168-63e009eb4aa5");
188 public static final UUID uuidDivision3
= UUID
.fromString("750d4e07-e34b-491f-a7b7-09723afdc960");
189 public static final UUID uuidDivision4
= UUID
.fromString("8a858922-e8e5-4791-ad53-906e50633ec7");
190 public static final UUID uuidDivision5
= UUID
.fromString("16057133-d541-4ebd-81d4-cb92265ec54c");
191 public static final UUID uuidDivision6
= UUID
.fromString("fbf21230-4a42-4f4c-9af8-5da52123c264");
192 public static final UUID uuidDivision7
= UUID
.fromString("d31dd96a-36ea-4428-871c-d8552a9565ca");
193 public static final UUID uuidDivision8
= UUID
.fromString("236ea447-c3ab-486d-9e06-cc5907861acc");
196 public UUID
getNamedAreaUuid(String key
) {
197 if (CdmUtils
.isEmpty(key
)){return null;
198 }else if (key
.equalsIgnoreCase("1")){return uuidDivision1
;
199 }else if (key
.equalsIgnoreCase("2")){return uuidDivision2
;
200 }else if (key
.equalsIgnoreCase("3")){return uuidDivision3
;
201 }else if (key
.equalsIgnoreCase("4")){return uuidDivision4
;
202 }else if (key
.equalsIgnoreCase("5")){return uuidDivision5
;
203 }else if (key
.equalsIgnoreCase("6")){return uuidDivision6
;
204 }else if (key
.equalsIgnoreCase("7")){return uuidDivision7
;
205 }else if (key
.equalsIgnoreCase("8")){return uuidDivision8
;
211 protected NamedArea
getNamedArea(UUID uuid
, String label
, String text
, String labelAbbrev
, NamedAreaType areaType
, NamedAreaLevel level
, TermVocabulary voc
){
212 NamedArea namedArea
= NamedArea
.NewInstance(text
, label
, labelAbbrev
);
213 voc
.addTerm(namedArea
);
214 namedArea
.setType(areaType
);
215 namedArea
.setLevel(level
);
216 namedArea
.setUuid(uuid
);