diff --git a/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java b/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java index 39a46f2..a70e82a 100644 --- a/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java @@ -1,74 +1,92 @@ -/* - * GeoBatch - Open Source geospatial batch processing system - * https://github.com/nfms4redd/nfms-geobatch - * Copyright (C) 2007-2012 GeoSolutions S.A.S. - * http://www.geo-solutions.it - * - * GPLv3 + Classpath exception - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package it.geosolutions.geoserver.decoder; - -import it.geosolutions.geoserver.rest.decoder.RESTCoverage; -import it.geosolutions.geoserver.rest.decoder.RESTDimensionInfo; - -import java.io.File; -import java.io.IOException; -import java.util.List; - -import org.apache.commons.io.FileUtils; -import org.junit.Assert; -import org.junit.Test; -import org.springframework.core.io.ClassPathResource; - -/** - * @author DamianoG - * - */ -public class MetadataDecoderTest { - - - @Test - public void testMetadataDimensionInfo() throws IOException { - - File coverageFile = new ClassPathResource("testdata/coverageExample.xml").getFile(); - String coverageString = FileUtils.readFileToString(coverageFile); - RESTCoverage coverage = RESTCoverage.build(coverageString); - List list = coverage.getDimensionInfo(); - - Assert.assertEquals(list.size(),2); - - - for (RESTDimensionInfo el : list){ - if(el.getKey().equals("time")){ - Assert.assertEquals(el.getResolution(),null); - Assert.assertEquals(el.getPresentation(),"LIST"); - Assert.assertEquals(el.getKey(),"time"); - Assert.assertEquals(el.isEnabled(),true); - } - if(el.getKey().equals("elevation")){ - Assert.assertEquals(el.getResolution(),"2"); - Assert.assertEquals(el.getPresentation(),"DISCRETE_INTERVAL"); - Assert.assertEquals(el.getKey(),"elevation"); - Assert.assertEquals(el.isEnabled(),true); - } - } - - - - - - } -} +/* + * GeoBatch - Open Source geospatial batch processing system + * https://github.com/nfms4redd/nfms-geobatch + * Copyright (C) 2007-2012 GeoSolutions S.A.S. + * http://www.geo-solutions.it + * + * GPLv3 + Classpath exception + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package it.geosolutions.geoserver.decoder; + +import it.geosolutions.geoserver.rest.decoder.RESTCoverage; +import it.geosolutions.geoserver.rest.decoder.RESTDimensionInfo; +import it.geosolutions.geoserver.rest.encoder.metadatalink.GSMetadataLinkInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.metadatalink.ResourceMetadataLinkInfo; + +import java.io.File; +import java.io.IOException; +import java.util.List; + +import org.apache.commons.io.FileUtils; +import org.junit.Assert; +import org.junit.Test; +import org.springframework.core.io.ClassPathResource; + +/** + * @author DamianoG + * @author eblondel + * + */ +public class MetadataDecoderTest { + + + @Test + public void testMetadataDimensionInfo() throws IOException { + + File coverageFile = new ClassPathResource("testdata/coverageExample.xml").getFile(); + String coverageString = FileUtils.readFileToString(coverageFile); + RESTCoverage coverage = RESTCoverage.build(coverageString); + List list = coverage.getDimensionInfo(); + + Assert.assertEquals(list.size(),2); + + + for (RESTDimensionInfo el : list){ + if(el.getKey().equals("time")){ + Assert.assertEquals(el.getResolution(),null); + Assert.assertEquals(el.getPresentation(),"LIST"); + Assert.assertEquals(el.getKey(),"time"); + Assert.assertEquals(el.isEnabled(),true); + } + if(el.getKey().equals("elevation")){ + Assert.assertEquals(el.getResolution(),"2"); + Assert.assertEquals(el.getPresentation(),"DISCRETE_INTERVAL"); + Assert.assertEquals(el.getKey(),"elevation"); + Assert.assertEquals(el.isEnabled(),true); + } + } + } + + @Test + public void testMetadataLinkInfo() throws IOException{ + File coverageFile = new ClassPathResource("testdata/coverageExample.xml").getFile(); + String coverageString = FileUtils.readFileToString(coverageFile); + RESTCoverage coverage = RESTCoverage.build(coverageString); + + List list = coverage.getEncodedMetadataLinkInfoList(); + + GSMetadataLinkInfoEncoder metadataLinkInfo1 = list.get(0); + Assert.assertEquals(metadataLinkInfo1.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.type),"text/xml"); + Assert.assertEquals(metadataLinkInfo1.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.metadataType),"ISO19115:2003"); + Assert.assertEquals(metadataLinkInfo1.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.content),"http://www.organization.org/metadata1"); + + GSMetadataLinkInfoEncoder metadataLinkInfo2 = list.get(1); + Assert.assertEquals(metadataLinkInfo2.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.type),"text/html"); + Assert.assertEquals(metadataLinkInfo2.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.metadataType),"ISO19115:2003"); + Assert.assertEquals(metadataLinkInfo2.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.content),"http://www.organization.org/metadata2"); + + } +} diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java index 9372f9e..24bd329 100644 --- a/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/feature/GSFeatureEncoderTest.java @@ -1,217 +1,231 @@ -/* - * Copyright (C) 2007 - 2011 GeoSolutions S.A.S. - * http://www.geo-solutions.it - * - * GPLv3 + Classpath exception - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package it.geosolutions.geoserver.rest.encoder.feature; - -import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; -import it.geosolutions.geoserver.rest.decoder.RESTLayer; -import it.geosolutions.geoserver.rest.decoder.RESTResource; -import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; -import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; -import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; -import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation; -import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.PresentationDiscrete; -import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; -import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; -import it.geosolutions.geoserver.rest.publisher.GeoserverRESTPublisherTest; - -import java.io.File; -import java.io.IOException; -import java.math.BigDecimal; -import java.util.List; - -import org.jdom.Element; -import org.junit.Assert; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.core.io.ClassPathResource; - -/** - * - * @author ETj (etj at geo-solutions.it) - * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it - */ -public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest { - protected final static Logger LOGGER = LoggerFactory.getLogger(GSFeatureEncoderTest.class); - - @Test - public void testIntegration() throws IOException { - - if (!enabled()) - return; - deleteAll(); - - GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW); - - String storeName = "resttestshp"; - String layerName = "cities"; - - GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); - fte.setName(layerName + "_NEW"); - fte.setTitle("title"); - // fte.addKeyword("TODO"); - fte.setNativeCRS("EPSG:4326"); - fte.setDescription("desc"); - fte.setEnabled(true); - - GSLayerEncoder layerEncoder = new GSLayerEncoder(); - layerEncoder.setEnabled(true); - layerEncoder.setQueryable(true); - - layerEncoder.setDefaultStyle("point"); - - publisher.createWorkspace(DEFAULT_WS); - - File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); - - // test insert - boolean published = publisher.publishShp(DEFAULT_WS, storeName, layerName, zipFile); - assertTrue("publish() failed", published); - assertTrue(existsLayer(layerName)); - - publisher.publishStyle(new File(new ClassPathResource("testdata").getFile(), - "default_point.sld")); - - // optionally select the attributes to publish - RESTLayer layer = reader.getLayer(layerName); - RESTResource resource = reader.getResource(layer); - List attrs = resource.getEncodedAttributeList(); - assertNotNull(attrs); - for (GSAttributeEncoder enc : attrs) { - fte.setAttribute(enc); - } - - assertTrue(publisher.publishDBLayer(DEFAULT_WS, storeName, fte, layerEncoder)); - } - - @Test - public void testFeatureTypeEncoder() { - - GSFeatureTypeEncoder encoder = new GSFeatureTypeEncoder(); - encoder.addKeyword("KEYWORD_1"); - encoder.addKeyword("KEYWORD_2"); - encoder.addKeyword("..."); - encoder.addKeyword("KEYWORD_N"); - - encoder.setName("Layername"); - - encoder.setTitle("title"); - encoder.addKeyword("TODO"); - encoder.setNativeCRS("EPSG:4326"); - encoder.setDescription("desc"); - encoder.setEnabled(true); - - GSAttributeEncoder attribute = new GSAttributeEncoder(); - attribute.setAttribute(FeatureTypeAttribute.name, "NAME"); - attribute.setAttribute(FeatureTypeAttribute.binding, "java.lang.String"); - attribute.setAttribute(FeatureTypeAttribute.maxOccurs, "1"); - attribute.setAttribute(FeatureTypeAttribute.minOccurs, "0"); - attribute.setAttribute(FeatureTypeAttribute.nillable, "true"); - - encoder.setAttribute(attribute); - - encoder.delAttribute("NAME"); - - attribute.setAttribute(FeatureTypeAttribute.name, "NEW_NAME"); - - encoder.setAttribute(attribute); - - // TODO encoder.getAttribute("NAME"); - - GSFeatureDimensionInfoEncoder dim2 = new GSFeatureDimensionInfoEncoder("ELE"); - - encoder.addMetadata("elevation", dim2); - dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(10)); - Element el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); - Assert.assertNotNull(el); - - LOGGER.info("contains_key:" + el.toString()); - - dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(12)); - el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION); - Assert.assertNotNull(el); - Assert.assertEquals("12", el.getText()); - - dim2.setPresentation(Presentation.CONTINUOUS_INTERVAL); - - encoder.setMetadata("time", new GSFeatureDimensionInfoEncoder("time")); - el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); - Assert.assertNotNull(el); - el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION); - Assert.assertNull(el); - - el = ElementUtils.contains(encoder.getRoot(), GSResourceEncoder.METADATA); - Assert.assertNotNull(el); - LOGGER.info("contains_key:" + el.toString()); - - final boolean removed = ElementUtils.remove(encoder.getRoot(), el); - LOGGER.info("remove:" + removed); - Assert.assertTrue(removed); - - el = ElementUtils.contains(encoder.getRoot(), "metadata"); - Assert.assertNull(el); - if (el == null) - LOGGER.info("REMOVED"); - - if (LOGGER.isInfoEnabled()) - LOGGER.info(encoder.toString()); - - assertEquals(encoder.getName(),"Layername"); - } - - @Test - public void testModifyFeature() { - GSFeatureTypeEncoder encoder = new GSFeatureTypeEncoder(); - encoder.addKeyword("KEYWORD_1"); - encoder.addKeyword("KEYWORD_2"); - encoder.addKeyword("..."); - encoder.addKeyword("KEYWORD_N"); - - Assert.assertTrue(encoder.delKeyword("KEYWORD_2")); - Assert.assertFalse(encoder.delKeyword("KEYWORD_M")); - - final GSFeatureDimensionInfoEncoder elevationDimension = new GSFeatureDimensionInfoEncoder( - "elevation_field"); - - // if (LOGGER.isInfoEnabled()) - // LOGGER.info(encoder.toString()); - - final String metadata = "elevation"; - encoder.setMetadata(metadata, elevationDimension); - - elevationDimension.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, - BigDecimal.valueOf(10)); - - if (LOGGER.isInfoEnabled()) - LOGGER.info(encoder.toString()); - - Assert.assertTrue(encoder.delMetadata(metadata)); - - if (LOGGER.isInfoEnabled()) - LOGGER.info(encoder.toString()); - - final Element el = ElementUtils.contains(encoder.getRoot(), - GSDimensionInfoEncoder.DIMENSIONINFO); - Assert.assertNull(el); - if (el == null) - LOGGER.info("REMOVED"); - - } -} +/* + * Copyright (C) 2007 - 2011 GeoSolutions S.A.S. + * http://www.geo-solutions.it + * + * GPLv3 + Classpath exception + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package it.geosolutions.geoserver.rest.encoder.feature; + +import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; +import it.geosolutions.geoserver.rest.decoder.RESTLayer; +import it.geosolutions.geoserver.rest.decoder.RESTResource; +import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; +import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation; +import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.PresentationDiscrete; +import it.geosolutions.geoserver.rest.encoder.metadata.GSFeatureDimensionInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.metadatalink.GSMetadataLinkInfoEncoder; +import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils; +import it.geosolutions.geoserver.rest.publisher.GeoserverRESTPublisherTest; + +import java.io.File; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.List; + +import org.jdom.Element; +import org.junit.Assert; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.ClassPathResource; + +/** + * + * @author ETj (etj at geo-solutions.it) + * @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it + */ +public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest { + protected final static Logger LOGGER = LoggerFactory.getLogger(GSFeatureEncoderTest.class); + + @Test + public void testIntegration() throws IOException { + + if (!enabled()) + return; + deleteAll(); + + GeoServerRESTPublisher publisher = new GeoServerRESTPublisher(RESTURL, RESTUSER, RESTPW); + + String storeName = "resttestshp"; + String layerName = "cities"; + + GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); + fte.setName(layerName + "_NEW"); + fte.setTitle("title"); + // fte.addKeyword("TODO"); + fte.setNativeCRS("EPSG:4326"); + fte.setDescription("desc"); + fte.setEnabled(true); + + //metadataLink + GSMetadataLinkInfoEncoder metadatalink = new GSMetadataLinkInfoEncoder(); + metadatalink.setup("text/xml", "ISO19115:2003","http://www.organization.org/metadata1"); + fte.addMetadataLinkInfo(metadatalink); + + GSLayerEncoder layerEncoder = new GSLayerEncoder(); + layerEncoder.setEnabled(true); + layerEncoder.setQueryable(true); + + layerEncoder.setDefaultStyle("point"); + + publisher.createWorkspace(DEFAULT_WS); + + File zipFile = new ClassPathResource("testdata/resttestshp.zip").getFile(); + + // test insert + boolean published = publisher.publishShp(DEFAULT_WS, storeName, layerName, zipFile); + assertTrue("publish() failed", published); + assertTrue(existsLayer(layerName)); + + publisher.publishStyle(new File(new ClassPathResource("testdata").getFile(), + "default_point.sld")); + + // optionally select the attributes to publish + RESTLayer layer = reader.getLayer(layerName); + RESTResource resource = reader.getResource(layer); + List attrs = resource.getEncodedAttributeList(); + assertNotNull(attrs); + for (GSAttributeEncoder enc : attrs) { + fte.setAttribute(enc); + } + + assertTrue(publisher.publishDBLayer(DEFAULT_WS, storeName, fte, layerEncoder)); + } + + @Test + public void testFeatureTypeEncoder() { + + GSFeatureTypeEncoder encoder = new GSFeatureTypeEncoder(); + encoder.addKeyword("KEYWORD_1"); + encoder.addKeyword("KEYWORD_2"); + encoder.addKeyword("..."); + encoder.addKeyword("KEYWORD_N"); + + encoder.setName("Layername"); + + encoder.setTitle("title"); + encoder.addKeyword("TODO"); + encoder.setNativeCRS("EPSG:4326"); + encoder.setDescription("desc"); + encoder.setEnabled(true); + + GSAttributeEncoder attribute = new GSAttributeEncoder(); + attribute.setAttribute(FeatureTypeAttribute.name, "NAME"); + attribute.setAttribute(FeatureTypeAttribute.binding, "java.lang.String"); + attribute.setAttribute(FeatureTypeAttribute.maxOccurs, "1"); + attribute.setAttribute(FeatureTypeAttribute.minOccurs, "0"); + attribute.setAttribute(FeatureTypeAttribute.nillable, "true"); + + encoder.setAttribute(attribute); + + encoder.delAttribute("NAME"); + + attribute.setAttribute(FeatureTypeAttribute.name, "NEW_NAME"); + + encoder.setAttribute(attribute); + + // TODO encoder.getAttribute("NAME"); + + GSFeatureDimensionInfoEncoder dim2 = new GSFeatureDimensionInfoEncoder("ELE"); + + encoder.addMetadata("elevation", dim2); + dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(10)); + Element el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); + Assert.assertNotNull(el); + + LOGGER.info("contains_key:" + el.toString()); + + dim2.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, BigDecimal.valueOf(12)); + el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION); + Assert.assertNotNull(el); + Assert.assertEquals("12", el.getText()); + + dim2.setPresentation(Presentation.CONTINUOUS_INTERVAL); + + encoder.setMetadata("time", new GSFeatureDimensionInfoEncoder("time")); + el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.PRESENTATION); + Assert.assertNotNull(el); + el = ElementUtils.contains(encoder.getRoot(), GSDimensionInfoEncoder.RESOLUTION); + Assert.assertNull(el); + + el = ElementUtils.contains(encoder.getRoot(), GSResourceEncoder.METADATA); + Assert.assertNotNull(el); + LOGGER.info("contains_key:" + el.toString()); + + final boolean removed = ElementUtils.remove(encoder.getRoot(), el); + LOGGER.info("remove:" + removed); + Assert.assertTrue(removed); + + el = ElementUtils.contains(encoder.getRoot(), "metadata"); + Assert.assertNull(el); + if (el == null) + LOGGER.info("REMOVED"); + + if (LOGGER.isInfoEnabled()) + LOGGER.info(encoder.toString()); + + assertEquals(encoder.getName(),"Layername"); + } + + @Test + public void testModifyFeature() { + GSFeatureTypeEncoder encoder = new GSFeatureTypeEncoder(); + encoder.addKeyword("KEYWORD_1"); + encoder.addKeyword("KEYWORD_2"); + encoder.addKeyword("..."); + encoder.addKeyword("KEYWORD_N"); + + Assert.assertTrue(encoder.delKeyword("KEYWORD_2")); + Assert.assertFalse(encoder.delKeyword("KEYWORD_M")); + + //metadataLinkInfo + encoder.addMetadataLinkInfo("text/xml", "ISO19115:2003","http://www.organization.org/metadata1"); + encoder.addMetadataLinkInfo("text/html", "ISO19115:2003","http://www.organization.org/metadata2"); + + Assert.assertTrue(encoder.delMetadataLinkInfo("http://www.organization.org/metadata2")); + Assert.assertFalse(encoder.delMetadataLinkInfo("http://www.organization.org/metadata3")); + + //dimensions + final GSFeatureDimensionInfoEncoder elevationDimension = new GSFeatureDimensionInfoEncoder( + "elevation_field"); + + // if (LOGGER.isInfoEnabled()) + // LOGGER.info(encoder.toString()); + + final String metadata = "elevation"; + encoder.setMetadata(metadata, elevationDimension); + + elevationDimension.setPresentation(PresentationDiscrete.DISCRETE_INTERVAL, + BigDecimal.valueOf(10)); + + if (LOGGER.isInfoEnabled()) + LOGGER.info(encoder.toString()); + + Assert.assertTrue(encoder.delMetadata(metadata)); + + if (LOGGER.isInfoEnabled()) + LOGGER.info(encoder.toString()); + + final Element el = ElementUtils.contains(encoder.getRoot(), + GSDimensionInfoEncoder.DIMENSIONINFO); + Assert.assertNull(el); + if (el == null) + LOGGER.info("REMOVED"); + + } +} diff --git a/src/test/java/it/geosolutions/geoserver/rest/encoder/metadatalink/GSMetadataLinkInfoEncoderTest.java b/src/test/java/it/geosolutions/geoserver/rest/encoder/metadatalink/GSMetadataLinkInfoEncoderTest.java new file mode 100644 index 0000000..c0159ff --- /dev/null +++ b/src/test/java/it/geosolutions/geoserver/rest/encoder/metadatalink/GSMetadataLinkInfoEncoderTest.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2007 - 2011 GeoSolutions S.A.S. + * http://www.geo-solutions.it + * + * GPLv3 + Classpath exception + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package it.geosolutions.geoserver.rest.encoder.metadatalink; + +import junit.framework.Assert; + +import org.junit.Test; + +/** +* +* @author eblondel +* +*/ +public class GSMetadataLinkInfoEncoderTest { + + @Test + public void metadataLinkInfoTest(){ + GSMetadataLinkInfoEncoder encoder = new GSMetadataLinkInfoEncoder(); + encoder.setup("text/xml", "ISO19115:2003","http://www.organization.org/metadata1"); + + Assert.assertEquals("text/xml", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.type)); + Assert.assertEquals("ISO19115:2003", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.metadataType)); + Assert.assertEquals("http://www.organization.org/metadata1", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.content)); + + Assert.assertTrue(encoder.delMetadataLinkInfoMember(ResourceMetadataLinkInfo.content)); + Assert.assertNull(encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.content)); + + encoder.setMetadataLinkInfoMember(ResourceMetadataLinkInfo.type, "text/html"); + encoder.setMetadataLinkInfoMember(ResourceMetadataLinkInfo.metadataType, "FGDC"); + encoder.setMetadataLinkInfoMember(ResourceMetadataLinkInfo.content, "http://www.organization.org/metadata2"); + Assert.assertEquals("text/html", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.type)); + Assert.assertEquals("FGDC", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.metadataType)); + Assert.assertEquals("http://www.organization.org/metadata2", encoder.getMetadataLinkInfoMember(ResourceMetadataLinkInfo.content)); + + } +} \ No newline at end of file diff --git a/src/test/resources/testdata/coverageExample.xml b/src/test/resources/testdata/coverageExample.xml index 1e41f79..4047347 100644 --- a/src/test/resources/testdata/coverageExample.xml +++ b/src/test/resources/testdata/coverageExample.xml @@ -1,97 +1,109 @@ - - - granuleTestMosaic - granuleTestMosaic - - topp - - - granuleTestMosaic - GEOGCS["WGS 84", - DATUM["World Geodetic System 1984", - SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], - AUTHORITY["EPSG","6326"]], - PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], - UNIT["degree", 0.017453292519943295], - AXIS["Geodetic longitude", EAST], - AXIS["Geodetic latitude", NORTH], - AUTHORITY["EPSG","4326"]] - EPSG:4326 - - -180.0 - 180.0 - -90.0 - 90.0 - EPSG:4326 - - - -180.0 - 180.0 - -90.0 - 90.0 - EPSG:4326 - - NONE - true - true - - - - true - LIST - - - - - true - DISCRETE_INTERVAL - 2 - - - - - granuleTestMosaic - - - - - 0 0 - 540 270 - - - 0.6666666666666666 - -0.6666666666666666 - 0.0 - 0.0 - -179.66666666666666 - 89.66666666666667 - - EPSG:4326 - - - - AllowMultithreading - false - - - MaxAllowedTiles - 2147483647 - - - InputTransparentColor - - - - SUGGESTED_TILE_SIZE - 256,256 - - - USE_JAI_IMAGEREAD - false - - - BackgroundValues - -1.0 - - + + + granuleTestMosaic + granuleTestMosaic + + topp + + + granuleTestMosaic + + + text/xml + ISO19115:2003 + http://www.organization.org/metadata1 + + + text/html + ISO19115:2003 + http://www.organization.org/metadata2 + + + GEOGCS["WGS 84", + DATUM["World Geodetic System 1984", + SPHEROID["WGS 84", 6378137.0, 298.257223563, AUTHORITY["EPSG","7030"]], + AUTHORITY["EPSG","6326"]], + PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], + UNIT["degree", 0.017453292519943295], + AXIS["Geodetic longitude", EAST], + AXIS["Geodetic latitude", NORTH], + AUTHORITY["EPSG","4326"]] + EPSG:4326 + + -180.0 + 180.0 + -90.0 + 90.0 + EPSG:4326 + + + -180.0 + 180.0 + -90.0 + 90.0 + EPSG:4326 + + NONE + true + true + + + + true + LIST + + + + + true + DISCRETE_INTERVAL + 2 + + + + + granuleTestMosaic + + + + + 0 0 + 540 270 + + + 0.6666666666666666 + -0.6666666666666666 + 0.0 + 0.0 + -179.66666666666666 + 89.66666666666667 + + EPSG:4326 + + + + AllowMultithreading + false + + + MaxAllowedTiles + 2147483647 + + + InputTransparentColor + + + + SUGGESTED_TILE_SIZE + 256,256 + + + USE_JAI_IMAGEREAD + false + + + BackgroundValues + -1.0 + + \ No newline at end of file