import java.awt.Color;\r
import java.io.IOException;\r
import java.io.InputStream;\r
+import java.io.InputStreamReader;\r
import java.net.HttpURLConnection;\r
import java.net.MalformedURLException;\r
import java.net.URI;\r
import java.util.Set;\r
import java.util.UUID;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.http.client.ClientProtocolException;\r
import org.apache.log4j.Logger;\r
-import org.junit.After;\r
-import org.junit.AfterClass;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
-import org.junit.BeforeClass;\r
import org.junit.Test;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.api.service.ITermService;\r
+import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
import eu.etaxonomy.cdm.common.StreamUtils;\r
import eu.etaxonomy.cdm.common.UriUtils;\r
-import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;\r
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.TermType;\r
import eu.etaxonomy.cdm.model.common.TermVocabulary;\r
import eu.etaxonomy.cdm.model.description.AbsenceTerm;\r
import eu.etaxonomy.cdm.model.description.Distribution;\r
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
import eu.etaxonomy.cdm.model.description.PresenceTerm;\r
+import eu.etaxonomy.cdm.model.location.Country;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
-import eu.etaxonomy.cdm.model.location.TdwgArea;\r
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
/**\r
* @author a.mueller\r
* @created 08.10.2008\r
- * @version 1.0\r
*/\r
-public class EditGeoServiceTest extends CdmIntegrationTest {\r
- @SuppressWarnings("unused")\r
- private static final Logger logger = Logger.getLogger(EditGeoServiceTest.class);\r
+public class EditGeoServiceTest extends CdmTransactionalIntegrationTest {\r
+ private static final Logger logger = Logger.getLogger(EditGeoServiceTest.class);\r
\r
- private static final String EDIT_MAPSERVICE_URI_STING = "http://edit.br.fgov.be/edit_wp5/v1/areas.php";\r
- private static URI editMapServiceUri;\r
+ private static final String EDIT_MAPSERVICE_URI_STING = "http://edit.africamuseum.be/edit_wp5/v1.2/rest_gen.php";\r
+ private static URI editMapServiceUri;\r
\r
- //@SpringBeanByType\r
- private IDefinedTermDao termDao;\r
+ //@SpringBeanByType\r
+ private IDefinedTermDao termDao;\r
\r
- @SpringBeanByType\r
- private GeoServiceAreaAnnotatedMapping mapping;\r
+ @SpringBeanByType\r
+ private ITermService termService;\r
\r
+ @SpringBeanByType\r
+ private IVocabularyService vocabService;\r
+\r
+ @SpringBeanByType\r
+ private GeoServiceAreaAnnotatedMapping mapping;\r
+\r
+ @SpringBeanByType\r
+ private IEditGeoService editGeoService;\r
//\r
// /**\r
// * @throws java.lang.Exception\r
// initializer.initialize();\r
// }\r
\r
- /**\r
- * @throws java.lang.Exception\r
- */\r
- @AfterClass\r
- public static void tearDownAfterClass() throws Exception {\r
- }\r
-\r
- /**\r
- * @throws java.lang.Exception\r
- */\r
- @Before\r
- public void setUp() throws Exception {\r
- EditGeoServiceUtilities.setTermDao(termDao);\r
- System.setProperty("ONLY-A-TEST", "TRUE"); // allows EditGeoServiceUtilities to skip some line of code\r
- editMapServiceUri = new URI(EDIT_MAPSERVICE_URI_STING);\r
- }\r
-\r
- /**\r
- * @throws java.lang.Exception\r
- */\r
- @After\r
- public void tearDown() throws Exception {\r
- }\r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ EditGeoServiceUtilities.setTermDao(termDao);\r
+ System.setProperty("ONLY-A-TEST", "TRUE"); // allows EditGeoServiceUtilities to skip some line of code\r
+ editMapServiceUri = new URI(EDIT_MAPSERVICE_URI_STING);\r
+ }\r
+\r
\r
//******************************************** TESTS**************\r
- @Test\r
- public void testGetWebServiceUrlTdwg() throws MalformedURLException, IOException {\r
- //String webServiceUrl = "http://www.test.de/webservice";\r
- Set<Distribution> distributions = new HashSet<Distribution>();\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("SPA"), PresenceTerm.PRESENT()));\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("GER"), PresenceTerm.INTRODUCED()));\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("14"), PresenceTerm.CULTIVATED()));\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("BGM"), AbsenceTerm.ABSENT()));\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("FRA"), AbsenceTerm.ABSENT()));\r
- distributions.add(Distribution.NewInstance(TdwgArea.getAreaByTdwgAbbreviation("IND-AP"), PresenceTerm.PRESENT()));\r
-\r
- Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
- presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
- presenceAbsenceColorMap.put(PresenceTerm.INTRODUCED(), Color.BLACK);\r
- presenceAbsenceColorMap.put(PresenceTerm.CULTIVATED(), Color.YELLOW);\r
- presenceAbsenceColorMap.put(AbsenceTerm.ABSENT(), Color.DARK_GRAY);\r
- String backLayer ="";\r
- presenceAbsenceColorMap = null;\r
- String bbox="-20,0,120,70";\r
- List<Language> languages = new ArrayList<Language>();\r
-\r
- String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions, mapping, presenceAbsenceColorMap, 600, 300, bbox,backLayer, null, languages );\r
- //TODO Set semantics is not determined\r
- //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";\r
- System.out.println(result);\r
- assertTrue(result.matches(".*l=earth.*"));\r
- assertTrue(result.matches(".*ms=600,300.*"));\r
- assertTrue(result.matches(".*ad=tdwg[1-4].*"));\r
- assertTrue(result.matches(".*tdwg2:[a-d]:14[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:FRA,BGM[\\|&].*") || result.matches(".*[a-d]:BGM,FRA[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:GER[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:SPA[\\|&].*") );\r
- assertTrue(result.matches(".*tdwg4:[a-d]:INDAP[\\|&].*") );\r
- //assertTrue(result.matches("0000ff"));\r
- //TODO continue\r
-\r
- // request map image from webservice\r
- subTestWithEditMapService(result);\r
- }\r
-\r
- @Test\r
- public void testGetWebServiceUrlCyprus() throws ClientProtocolException, IOException, URISyntaxException {\r
- makeCyprusAreas();\r
- Set<Distribution> distributions = new HashSet<Distribution>();\r
- distributions.add(Distribution.NewInstance(divisions.get("1"), PresenceTerm.PRESENT()));\r
- distributions.add(Distribution.NewInstance(divisions.get("2"), PresenceTerm.INTRODUCED()));\r
- distributions.add(Distribution.NewInstance(divisions.get("3"), PresenceTerm.CULTIVATED()));\r
- distributions.add(Distribution.NewInstance(divisions.get("4"), AbsenceTerm.ABSENT()));\r
- distributions.add(Distribution.NewInstance(divisions.get("5"), AbsenceTerm.ABSENT()));\r
- distributions.add(Distribution.NewInstance(divisions.get("6"), PresenceTerm.PRESENT()));\r
-\r
- Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
- presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
- presenceAbsenceColorMap.put(PresenceTerm.INTRODUCED(), Color.BLACK);\r
- presenceAbsenceColorMap.put(PresenceTerm.CULTIVATED(), Color.YELLOW);\r
- presenceAbsenceColorMap.put(AbsenceTerm.ABSENT(), Color.DARK_GRAY);\r
- String backLayer ="";\r
- presenceAbsenceColorMap = null;\r
- String bbox="-20,0,120,70";\r
- List<Language> languages = new ArrayList<Language>();\r
-\r
- String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions, mapping, presenceAbsenceColorMap, 600, 300, bbox,backLayer, null, languages );\r
- //TODO Set semantics is not determined\r
- //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";\r
- assertTrue(result.matches(".*l=earth.*"));\r
- assertTrue(result.matches(".*ms=600,300.*"));\r
- assertTrue(result.matches(".*ad=cyprusdivs%3Abdcode:.*"));\r
- assertTrue(result.matches(".*[a-d]:5,4[\\|&].*") || result.matches(".*[a-d]:4,5[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:1,6[\\|&].*") || result.matches(".*[a-d]:6,1[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:2[\\|&].*") );\r
- assertTrue(result.matches(".*[a-d]:3[\\|&].*") );\r
-\r
- // request map image from webservice\r
- subTestWithEditMapService(result);\r
- }\r
-\r
- private void subTestWithEditMapService(String result)throws MalformedURLException, IOException {\r
- if(UriUtils.isServiceAvailable(editMapServiceUri)){\r
- URL requestUrl = new URL(editMapServiceUri.toString() + "?img=false&" + result);\r
- HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();\r
- connection.connect();\r
- assertTrue(connection.getResponseCode() == 200);\r
- InputStream contentStream = connection.getInputStream();\r
- String content = StreamUtils.readToString(contentStream);\r
- System.out.println(content);\r
- assertTrue(content.startsWith("[{"));\r
- assertTrue(content.endsWith("}]"));\r
- assertTrue(content.matches(".*\"bbox\":.*"));\r
- assertTrue(content.matches(".*\"legend\":.*"));\r
- assertTrue(content.matches(".*\"layers\":.*"));\r
- assertTrue(content.matches(".*\"sld\":.*"));\r
- assertTrue(content.matches(".*\"geoserver\":.*"));\r
- }\r
- }\r
-\r
- public static final UUID uuidCyprusDivisionsVocabulary = UUID.fromString("2119f610-1f93-4d87-af28-40aeefaca100");\r
- private Map<String, NamedArea> divisions = new HashMap<String, NamedArea>();\r
-\r
- private boolean makeCyprusAreas() {\r
- //divisions\r
-\r
-\r
- NamedAreaType areaType = NamedAreaType.NATURAL_AREA();\r
- NamedAreaLevel areaLevel = NamedAreaLevel.NewInstance("Cyprus Division", "Cyprus Division", null);\r
-\r
- TermVocabulary areaVocabulary = TermVocabulary.NewInstance("Cyprus devisions", "Cyprus divisions", null, null);\r
- areaVocabulary.setUuid(uuidCyprusDivisionsVocabulary);\r
-\r
- for(int i = 1; i <= 8; i++){\r
- UUID divisionUuid = getNamedAreaUuid(String.valueOf(i));\r
- NamedArea division = this.getNamedArea(divisionUuid, "Division " + i, "Cyprus: Division " + i, String.valueOf(i), areaType, areaLevel, areaVocabulary);\r
- divisions.put(String.valueOf(i), division);\r
- }\r
+\r
+ @Test\r
+ public void testGetWebServiceUrlCountry() throws MalformedURLException, IOException {\r
+ Set<Distribution> distributions = new HashSet<Distribution>();\r
+ Country germany = termService.findByIdInVocabulary("DEU", Country.uuidCountryVocabulary, Country.class);\r
+// germany = (Country)termService.find(665);\r
+// germany = (Country)termService.find(UUID.fromString("cbe7ce69-2952-4309-85dd-0d7d4a4830a1"));\r
+\r
+// germany = Country.GERMANY();\r
+\r
+ distributions.add(Distribution.NewInstance(germany, PresenceTerm.PRESENT()));\r
+ distributions.add(Distribution.NewInstance(termService.findByIdInVocabulary("DE", Country.uuidCountryVocabulary, Country.class), PresenceTerm.INTRODUCED()));\r
+ Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
+ presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
+ presenceAbsenceColorMap.put(PresenceTerm.INTRODUCED(), Color.BLACK);\r
+ List<Language> languages = new ArrayList<Language>();\r
+\r
+ boolean subAreaPreference = false;\r
+ boolean statusOrderPreference = false;\r
+ String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions,\r
+ subAreaPreference, statusOrderPreference, null, mapping,\r
+ presenceAbsenceColorMap, null, languages );\r
+ logger.warn(result);\r
+ Assert.assertTrue("WebServiceUrl must contain country part for Germany", result.matches(".*ad=country_earth(%3A|:)gmi_cntry:a:DEU.*"));\r
+\r
+ }\r
+\r
+ @Test\r
+ public void testGetWebServiceUrlTdwg() throws MalformedURLException, IOException {\r
+ //String webServiceUrl = "http://www.test.de/webservice";\r
+ Set<Distribution> distributions = new HashSet<Distribution>();\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("SPA"), PresenceTerm.PRESENT()));\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("GER"), PresenceTerm.INTRODUCED()));\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("14"), PresenceTerm.CULTIVATED()));\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("BGM"), AbsenceTerm.ABSENT()));\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("FRA"), AbsenceTerm.ABSENT()));\r
+ distributions.add(Distribution.NewInstance(termService.getAreaByTdwgAbbreviation("IND-AP"), PresenceTerm.PRESENT()));\r
+\r
+ Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
+ presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
+ presenceAbsenceColorMap.put(PresenceTerm.INTRODUCED(), Color.BLACK);\r
+ presenceAbsenceColorMap.put(PresenceTerm.CULTIVATED(), Color.YELLOW);\r
+ presenceAbsenceColorMap.put(AbsenceTerm.ABSENT(), Color.DARK_GRAY);\r
+ String backLayer ="";\r
+ presenceAbsenceColorMap = null;\r
+ String bbox="-20,0,120,70";\r
+ List<Language> languages = new ArrayList<Language>();\r
+\r
+ boolean subAreaPreference = false;\r
+ boolean statusOrderPreference = false;\r
+ String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions,\r
+ subAreaPreference ,\r
+ statusOrderPreference,\r
+ null, mapping, presenceAbsenceColorMap, null, languages );\r
+ //TODO Set semantics is not determined\r
+ //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";\r
+ logger.debug(result);\r
+ assertTrue(result.matches(".*ad=tdwg[1-4].*"));\r
+ assertTrue(result.matches(".*tdwg2:[a-d]:14[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:FRA,BGM[\\|&].*") || result.matches(".*[a-d]:BGM,FRA[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:GER[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:SPA[\\|&].*") );\r
+ assertTrue(result.matches(".*tdwg4:[a-d]:INDAP[\\|&].*") );\r
+ //assertTrue(result.matches("0000ff"));\r
+ //TODO continue\r
+\r
+ // request map image from webservice\r
+ subTestWithEditMapService(result);\r
+ }\r
+\r
+ @Test\r
+ public void testGetWebServiceUrlCyprus() throws ClientProtocolException, IOException, URISyntaxException {\r
+ makeCyprusAreas();\r
+ Set<Distribution> distributions = new HashSet<Distribution>();\r
+ distributions.add(Distribution.NewInstance(divisions.get("1"), PresenceTerm.PRESENT()));\r
+ distributions.add(Distribution.NewInstance(divisions.get("2"), PresenceTerm.INTRODUCED()));\r
+ distributions.add(Distribution.NewInstance(divisions.get("3"), PresenceTerm.CULTIVATED()));\r
+ distributions.add(Distribution.NewInstance(divisions.get("4"), AbsenceTerm.ABSENT()));\r
+ distributions.add(Distribution.NewInstance(divisions.get("5"), AbsenceTerm.ABSENT()));\r
+ distributions.add(Distribution.NewInstance(divisions.get("6"), PresenceTerm.PRESENT()));\r
+\r
+ Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
+ presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
+ presenceAbsenceColorMap.put(PresenceTerm.INTRODUCED(), Color.BLACK);\r
+ presenceAbsenceColorMap.put(PresenceTerm.CULTIVATED(), Color.YELLOW);\r
+ presenceAbsenceColorMap.put(AbsenceTerm.ABSENT(), Color.DARK_GRAY);\r
+ String backLayer ="";\r
+ presenceAbsenceColorMap = null;\r
+ String bbox="-20,0,120,70";\r
+ List<Language> languages = new ArrayList<Language>();\r
+\r
+ boolean subAreaPreference = false;\r
+ boolean statusOrderPreference = false;\r
+ String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions,\r
+ subAreaPreference ,\r
+ statusOrderPreference,\r
+ null, mapping, presenceAbsenceColorMap, null, languages );\r
+ //TODO Set semantics is not determined\r
+ //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";\r
+ assertTrue(result.matches(".*ad=cyprusdivs%3Abdcode:.*"));\r
+ assertTrue(result.matches(".*[a-d]:5,4[\\|&].*") || result.matches(".*[a-d]:4,5[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:1,6[\\|&].*") || result.matches(".*[a-d]:6,1[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:2[\\|&].*") );\r
+ assertTrue(result.matches(".*[a-d]:3[\\|&].*") );\r
+\r
+ // request map image from webservice\r
+ subTestWithEditMapService(result);\r
+ }\r
+\r
+ private void subTestWithEditMapService(String queryString)throws MalformedURLException, IOException {\r
+ if(UriUtils.isServiceAvailable(editMapServiceUri)){\r
+ URL requestUrl = new URL(editMapServiceUri.toString() + "?img=false&bbox=-180,-90,180,90&ms=1000&" + queryString);\r
+ logger.debug("editMapServiceUri: " + requestUrl);\r
+ HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();\r
+ connection.connect();\r
+ assertTrue(connection.getResponseCode() == 200);\r
+ InputStream contentStream = connection.getInputStream();\r
+ String content = StreamUtils.readToString(contentStream);\r
+ logger.debug("EditMapService response body:\n" + content);\r
+ assertTrue(content.startsWith("[{"));\r
+ assertTrue(content.endsWith("}]"));\r
+ assertTrue(content.matches(".*\"bbox\":.*"));\r
+ assertTrue(content.matches(".*\"legend\":.*"));\r
+ assertTrue(content.matches(".*\"layers\":.*"));\r
+ assertTrue(content.matches(".*\"sld\":.*"));\r
+ assertTrue(content.matches(".*\"geoserver\":.*"));\r
+ }\r
+ }\r
+\r
+ public static final UUID uuidCyprusDivisionsVocabulary = UUID.fromString("2119f610-1f93-4d87-af28-40aeefaca100");\r
+ private final Map<String, NamedArea> divisions = new HashMap<String, NamedArea>();\r
+\r
+ private boolean makeCyprusAreas() throws IOException {\r
+ //divisions\r
+\r
+\r
+ NamedAreaType areaType = NamedAreaType.NATURAL_AREA();\r
+ NamedAreaLevel areaLevel = NamedAreaLevel.NewInstance("Cyprus Division", "Cyprus Division", null);\r
+\r
+ termService.saveOrUpdate(areaLevel);\r
+\r
+ TermVocabulary<NamedArea> areaVocabulary = TermVocabulary.NewInstance(TermType.NamedArea, "Cyprus devisions", "Cyprus divisions", null, null);\r
+ areaVocabulary.setUuid(uuidCyprusDivisionsVocabulary);\r
+\r
+\r
+ for(int i = 1; i <= 8; i++){\r
+ UUID divisionUuid = getNamedAreaUuid(String.valueOf(i));\r
+ NamedArea division = this.newNamedArea(\r
+ divisionUuid,\r
+ "Division " + i,\r
+ "Cyprus: Division " + i,\r
+ String.valueOf(i), // id in vocab\r
+ areaType,\r
+ areaLevel,\r
+ areaVocabulary);\r
+ divisions.put(String.valueOf(i), division);\r
+ }\r
+\r
+ vocabService.saveOrUpdate(areaVocabulary);\r
+ commitAndStartNewTransaction(null);\r
+\r
+\r
+ // import and map shapefile attributes from csv\r
+ InputStream is = getClass().getClassLoader().getResourceAsStream("eu/etaxonomy/cdm/ext/geo/cyprusdivs.csv");\r
+ List<String> idSearchFields = new ArrayList<String>();\r
+ idSearchFields.add("bdcode");\r
+ String wmsLayerName = "cyprusdivs";\r
+ editGeoService.mapShapeFileToNamedAreas(new InputStreamReader(is), idSearchFields, wmsLayerName, uuidCyprusDivisionsVocabulary, null);\r
+\r
+ divisions.clear();\r
+ Set<DefinedTermBase> terms = vocabService.load(uuidCyprusDivisionsVocabulary).getTerms();\r
+ for(DefinedTermBase dtb : terms){\r
+ divisions.put(dtb.getIdInVocabulary(), (NamedArea) dtb);\r
+ }\r
+\r
\r
// indigenousStatus = (PresenceTerm)getTermService().find(CyprusTransformer.indigenousUuid);\r
// casualStatus = (PresenceTerm)getTermService().find(CyprusTransformer.casualUuid);\r
// invasiveStatus = (PresenceTerm)getTermService().find(CyprusTransformer.invasiveUuid);\r
// questionableStatus = (PresenceTerm)getTermService().find(CyprusTransformer.questionableUuid);\r
\r
- return true;\r
-\r
-\r
- }\r
-\r
- public static final UUID uuidDivision1 = UUID.fromString("ab17eee9-1abb-4ce9-a9a2-563f840cdbfc");\r
- public static final UUID uuidDivision2 = UUID.fromString("c3606165-efb7-4224-a168-63e009eb4aa5");\r
- public static final UUID uuidDivision3 = UUID.fromString("750d4e07-e34b-491f-a7b7-09723afdc960");\r
- public static final UUID uuidDivision4 = UUID.fromString("8a858922-e8e5-4791-ad53-906e50633ec7");\r
- public static final UUID uuidDivision5 = UUID.fromString("16057133-d541-4ebd-81d4-cb92265ec54c");\r
- public static final UUID uuidDivision6 = UUID.fromString("fbf21230-4a42-4f4c-9af8-5da52123c264");\r
- public static final UUID uuidDivision7 = UUID.fromString("d31dd96a-36ea-4428-871c-d8552a9565ca");\r
- public static final UUID uuidDivision8 = UUID.fromString("236ea447-c3ab-486d-9e06-cc5907861acc");\r
-\r
-\r
- public UUID getNamedAreaUuid(String key) {\r
- if (CdmUtils.isEmpty(key)){return null;\r
- }else if (key.equalsIgnoreCase("1")){return uuidDivision1;\r
- }else if (key.equalsIgnoreCase("2")){return uuidDivision2;\r
- }else if (key.equalsIgnoreCase("3")){return uuidDivision3;\r
- }else if (key.equalsIgnoreCase("4")){return uuidDivision4;\r
- }else if (key.equalsIgnoreCase("5")){return uuidDivision5;\r
- }else if (key.equalsIgnoreCase("6")){return uuidDivision6;\r
- }else if (key.equalsIgnoreCase("7")){return uuidDivision7;\r
- }else if (key.equalsIgnoreCase("8")){return uuidDivision8;\r
- }else{\r
- return null;\r
- }\r
- }\r
-\r
- protected NamedArea getNamedArea(UUID uuid, String label, String text, String labelAbbrev, NamedAreaType areaType, NamedAreaLevel level, TermVocabulary voc){\r
- NamedArea namedArea = NamedArea.NewInstance(text, label, labelAbbrev);\r
- voc.addTerm(namedArea);\r
- namedArea.setType(areaType);\r
- namedArea.setLevel(level);\r
- namedArea.setUuid(uuid);\r
- return namedArea;\r
- }\r
-\r
- @Test\r
- public void testGetWebServiceUrlBangka() throws ClientProtocolException, IOException, URISyntaxException {\r
- NamedArea areaBangka = NamedArea.NewInstance("Bangka", "Bangka", null);\r
- TermVocabulary<NamedArea> voc = TermVocabulary.NewInstance("test Voc", "test voc", null, null);\r
- voc.addTerm(areaBangka);\r
-\r
- GeoServiceArea geoServiceArea = new GeoServiceArea();\r
- String geoServiceLayer="vmap0_as_bnd_political_boundary_a";\r
- String layerFieldName ="nam";\r
- String areaValue = "PULAU BANGKA#SUMATERA SELATAN";\r
- geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
- geoServiceArea.add(geoServiceLayer, layerFieldName, "BALI");\r
-\r
- mapping.set(areaBangka, geoServiceArea);\r
- Set<Distribution> distributions = new HashSet<Distribution>();\r
- distributions.add(Distribution.NewInstance(areaBangka, PresenceTerm.PRESENT()));\r
-\r
- Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
- presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
-\r
- String backLayer ="";\r
- presenceAbsenceColorMap = null;\r
- String bbox="90,-8,130,8";\r
- List<Language> languages = new ArrayList<Language>();\r
-\r
- String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions, mapping, presenceAbsenceColorMap, 600, 300, bbox,backLayer, null, languages );\r
- //TODO Set semantics is not determined\r
- //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";\r
-\r
- System.out.println(result);\r
-\r
- assertTrue(result.matches(".*l=earth.*"));\r
- assertTrue(result.matches(".*ms=600,300.*"));\r
- assertTrue(result.matches(".*ad=vmap0_as_bnd_political_boundary_a%3Anam:.*"));\r
- assertTrue(result.matches(".*(PULAU\\+BANGKA%23SUMATERA\\+SELATAN).*") );\r
- assertTrue(result.matches(".*(BALI).*") );\r
-\r
- // request map image from webservice\r
- subTestWithEditMapService(result);\r
- }\r
+ return true;\r
+\r
+\r
+ }\r
+\r
+ public static final UUID uuidDivision1 = UUID.fromString("ab17eee9-1abb-4ce9-a9a2-563f840cdbfc");\r
+ public static final UUID uuidDivision2 = UUID.fromString("c3606165-efb7-4224-a168-63e009eb4aa5");\r
+ public static final UUID uuidDivision3 = UUID.fromString("750d4e07-e34b-491f-a7b7-09723afdc960");\r
+ public static final UUID uuidDivision4 = UUID.fromString("8a858922-e8e5-4791-ad53-906e50633ec7");\r
+ public static final UUID uuidDivision5 = UUID.fromString("16057133-d541-4ebd-81d4-cb92265ec54c");\r
+ public static final UUID uuidDivision6 = UUID.fromString("fbf21230-4a42-4f4c-9af8-5da52123c264");\r
+ public static final UUID uuidDivision7 = UUID.fromString("d31dd96a-36ea-4428-871c-d8552a9565ca");\r
+ public static final UUID uuidDivision8 = UUID.fromString("236ea447-c3ab-486d-9e06-cc5907861acc");\r
+\r
+\r
+ public UUID getNamedAreaUuid(String key) {\r
+ if (StringUtils.isBlank(key)){return null;\r
+ }else if (key.equalsIgnoreCase("1")){return uuidDivision1;\r
+ }else if (key.equalsIgnoreCase("2")){return uuidDivision2;\r
+ }else if (key.equalsIgnoreCase("3")){return uuidDivision3;\r
+ }else if (key.equalsIgnoreCase("4")){return uuidDivision4;\r
+ }else if (key.equalsIgnoreCase("5")){return uuidDivision5;\r
+ }else if (key.equalsIgnoreCase("6")){return uuidDivision6;\r
+ }else if (key.equalsIgnoreCase("7")){return uuidDivision7;\r
+ }else if (key.equalsIgnoreCase("8")){return uuidDivision8;\r
+ }else{\r
+ return null;\r
+ }\r
+ }\r
+\r
+ protected NamedArea newNamedArea(UUID uuid, String label, String text, String IdInVocabulary, NamedAreaType areaType, NamedAreaLevel level, TermVocabulary<NamedArea> voc){\r
+ NamedArea namedArea = NamedArea.NewInstance(text, label, null);\r
+ voc.addTerm(namedArea);\r
+ namedArea.setType(areaType);\r
+ namedArea.setLevel(level);\r
+ namedArea.setUuid(uuid);\r
+ namedArea.setIdInVocabulary(IdInVocabulary);\r
+ return namedArea;\r
+ }\r
+\r
+ @Test\r
+ public void testGetWebServiceUrlBangka() throws ClientProtocolException, IOException, URISyntaxException {\r
+ NamedArea areaBangka = NamedArea.NewInstance("Bangka", "Bangka", null);\r
+ TermVocabulary<NamedArea> voc = TermVocabulary.NewInstance(TermType.NamedArea, "test Voc", "test voc", null, null);\r
+ voc.addTerm(areaBangka);\r
+\r
+ GeoServiceArea geoServiceArea = new GeoServiceArea();\r
+ String geoServiceLayer="vmap0_as_bnd_political_boundary_a";\r
+ String layerFieldName ="nam";\r
+ String areaValue = "PULAU BANGKA#SUMATERA SELATAN";\r
+ geoServiceArea.add(geoServiceLayer, layerFieldName, areaValue);\r
+ geoServiceArea.add(geoServiceLayer, layerFieldName, "BALI");\r
+\r
+ mapping.set(areaBangka, geoServiceArea);\r
+ Set<Distribution> distributions = new HashSet<Distribution>();\r
+ distributions.add(Distribution.NewInstance(areaBangka, PresenceTerm.PRESENT()));\r
+\r
+ Map<PresenceAbsenceTermBase<?>, Color> presenceAbsenceColorMap = new HashMap<PresenceAbsenceTermBase<?>, Color>();\r
+ presenceAbsenceColorMap.put(PresenceTerm.PRESENT(), Color.BLUE);\r
+\r
+ presenceAbsenceColorMap = null;\r
+ List<Language> languages = new ArrayList<Language>();\r
+\r
+ boolean subAreaPreference = false;\r
+ boolean statusOrderPreference = false;\r
+ String result = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions,\r
+ subAreaPreference ,\r
+ statusOrderPreference,\r
+ null, mapping, presenceAbsenceColorMap, null, languages );\r
+ //TODO Set semantics is not determined\r
+ //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";\r
+\r
+ logger.debug(result);\r
+ assertTrue(result.matches(".*ad=vmap0_as_bnd_political_boundary_a%3Anam:.*"));\r
+ assertTrue(result.matches(".*(PULAU\\+BANGKA%23SUMATERA\\+SELATAN).*") );\r
+ assertTrue(result.matches(".*(BALI).*") );\r
+\r
+ // request map image from webservice\r
+ subTestWithEditMapService(result);\r
+ }\r
\r
\r
}
\ No newline at end of file