/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.wps.gs; import org.geoserver.data.test.MockData; import org.geoserver.data.test.SystemTestData; import org.geoserver.wps.WPSTestSupport; import org.junit.Test; import org.w3c.dom.Document; import javax.xml.namespace.QName; import java.util.HashMap; import java.util.Map; import static org.custommonkey.xmlunit.XMLAssert.assertXpathEvaluatesTo; import static org.custommonkey.xmlunit.XMLAssert.assertXpathExists; import static org.junit.Assert.assertEquals; public class CoverageClassStatsTest extends WPSTestSupport { public static QName DEM = new QName(MockData.SF_URI, "sfdem", MockData.SF_PREFIX); @Override protected void onSetUp(SystemTestData testData) throws Exception { super.onSetUp(testData); // add extra data used by this test //addWcs11Coverages(testData); Map<SystemTestData.LayerProperty, Object> props = new HashMap<SystemTestData.LayerProperty, Object>(); props.put(SystemTestData.LayerProperty.SRS, 26713); testData.addRasterLayer(DEM, "sfdem.tiff", ".tiff", props, getClass(), getCatalog()); } @Test public void testClassStats() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ "<wps:Execute version=\"1.0.0\" service=\"WPS\" "+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "+ " xmlns=\"http://www.opengis.net/wps/1.0.0\" "+ " xmlns:wps=\"http://www.opengis.net/wps/1.0.0\" "+ " xmlns:ows=\"http://www.opengis.net/ows/1.1\" "+ " xmlns:wcs=\"http://www.opengis.net/wcs/1.1.1\" "+ " xmlns:xlink=\"http://www.w3.org/1999/xlink\" "+ " xsi:schemaLocation=\"http://www.opengis.net/wps/1.0.0 http://schemas.opengis.net/wps/1.0.0/wpsAll.xsd\">"+ " <ows:Identifier>ras:CoverageClassStats</ows:Identifier>"+ " <wps:DataInputs>"+ " <wps:Input>"+ " <ows:Identifier>coverage</ows:Identifier>"+ " <wps:Reference mimeType=\"image/tiff\" xlink:href=\"http://geoserver/wcs\" method=\"POST\">"+ " <wps:Body>"+ " <wcs:GetCoverage service=\"WCS\" version=\"1.1.1\">"+ " <ows:Identifier>sf:sfdem</ows:Identifier>"+ " <wcs:DomainSubset>"+ " <ows:BoundingBox crs=\"http://www.opengis.net/gml/srs/epsg.xml#26713\">"+ " <ows:LowerCorner>589980.0 4913700.0</ows:LowerCorner>"+ " <ows:UpperCorner>609000.0 4928010.0</ows:UpperCorner>"+ " </ows:BoundingBox>"+ " </wcs:DomainSubset>"+ " <wcs:Output format=\"image/tiff\"/>"+ " </wcs:GetCoverage>"+ " </wps:Body>"+ " </wps:Reference>"+ " </wps:Input>"+ " <wps:Input>"+ " <ows:Identifier>stats</ows:Identifier>"+ " <wps:Data>"+ " <wps:LiteralData>mean</wps:LiteralData>"+ " </wps:Data>"+ " </wps:Input>"+ " <wps:Input>"+ " <ows:Identifier>method</ows:Identifier>"+ " <wps:Data>"+ " <wps:LiteralData>QUANTILE</wps:LiteralData>"+ " </wps:Data>"+ " </wps:Input>"+ " <wps:Input>"+ " <ows:Identifier>noData</ows:Identifier>"+ " <wps:Data>"+ " <wps:LiteralData>-9.99999993381581251e+36</wps:LiteralData>"+ " </wps:Data>"+ " </wps:Input>"+ " <wps:Input>"+ " <ows:Identifier>classes</ows:Identifier>"+ " <wps:Data>"+ " <wps:LiteralData>2</wps:LiteralData>"+ " </wps:Data>"+ " </wps:Input>"+ " </wps:DataInputs>"+ " <wps:ResponseForm>"+ " <wps:RawDataOutput mimeType=\"text/xml\">"+ " <ows:Identifier>results</ows:Identifier>"+ " </wps:RawDataOutput>"+ " </wps:ResponseForm>"+ "</wps:Execute>"; Document dom = postAsDOM(root(), xml); //print(dom); assertEquals("Results", dom.getDocumentElement().getNodeName()); assertXpathExists("//Class", dom); assertXpathEvaluatesTo("2", "count(//Class)", dom); assertXpathExists("//Class[@count='145883']", dom); assertXpathExists("//Class[@count='146434']", dom); } }