From 7fee169369307766207007a5ba2fbbb945272419 Mon Sep 17 00:00:00 2001 From: eblondel Date: Sat, 6 Apr 2013 15:36:17 +0200 Subject: [PATCH] MetadataLink support - add tests --- .../decoder/MetadataDecoderTest.java | 30 ++++++++--- .../encoder/feature/GSFeatureEncoderTest.java | 14 +++++ .../GSMetadataLinkInfoEncoderTest.java | 53 +++++++++++++++++++ .../resources/testdata/coverageExample.xml | 12 +++++ 4 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 src/test/java/it/geosolutions/geoserver/rest/encoder/metadatalink/GSMetadataLinkInfoEncoderTest.java diff --git a/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java b/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java index 39a46f2..a259360 100644 --- a/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java +++ b/src/test/java/it/geosolutions/geoserver/decoder/MetadataDecoderTest.java @@ -23,6 +23,8 @@ 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; @@ -35,6 +37,7 @@ import org.springframework.core.io.ClassPathResource; /** * @author DamianoG + * @author eblondel * */ public class MetadataDecoderTest { @@ -64,11 +67,26 @@ public class MetadataDecoderTest { 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..4703fb1 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 @@ -28,6 +28,7 @@ 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; @@ -71,6 +72,11 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest { 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); @@ -187,6 +193,14 @@ public class GSFeatureEncoderTest extends GeoserverRESTPublisherTest { 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"); 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..97de7fd --- /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..4230091 100644 --- a/src/test/resources/testdata/coverageExample.xml +++ b/src/test/resources/testdata/coverageExample.xml @@ -7,6 +7,18 @@ 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"]],