package org.geoserver.wcs2_0.eo; import static org.junit.Assert.assertEquals; import org.geoserver.wcs.WCSInfo; import org.junit.Test; import org.w3c.dom.Document; public class GetCapabilitiesTest extends WCSEOTestSupport { @Test public void testEOExtensions() throws Exception { Document dom = getAsDOM("wcs?request=GetCapabilities&version=2.0.1&service=WCS"); // print(dom); // operations metadata checks assertEquals("1", xpath.evaluate("count(//ows:Operation[@name='DescribeEOCoverageSet'])", dom)); assertEquals("1", xpath.evaluate("count(//ows:Constraint[@name='CountDefault'])", dom)); assertEquals("20", xpath.evaluate("//ows:Constraint[@name='CountDefault']/ows:DefaultValue", dom)); // dataset series checks assertEquals("4", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary)", dom)); // check time ranges assertEquals("1", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__timeranges_dss'])", dom)); assertEquals("1", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__timeranges_dss']/ows:WGS84BoundingBox)", dom)); assertEquals("2008-10-31T00:00:00.000Z", xpath.evaluate("//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__timeranges_dss']/gml:TimePeriod/gml:beginPosition", dom)); assertEquals("2008-11-07T00:00:00.000Z", xpath.evaluate("//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__timeranges_dss']/gml:TimePeriod/gml:endPosition", dom)); // check water temp assertEquals("1", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__watertemp_dss'])", dom)); assertEquals("1", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__watertemp_dss']/ows:WGS84BoundingBox)", dom)); assertEquals("2008-10-31T00:00:00.000Z", xpath.evaluate("//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__watertemp_dss']/gml:TimePeriod/gml:beginPosition", dom)); assertEquals("2008-11-01T00:00:00.000Z", xpath.evaluate("//wcs:Extension/wcseo:DatasetSeriesSummary[wcseo:DatasetSeriesId='sf__watertemp_dss']/gml:TimePeriod/gml:endPosition", dom)); } @Test public void testDisableEOExtensions() throws Exception { // disable EO extensions WCSInfo wcs = getGeoServer().getService(WCSInfo.class); wcs.getMetadata().put(WCSEOMetadata.ENABLED.key, false); getGeoServer().save(wcs); Document dom = getAsDOM("wcs?request=GetCapabilities&version=2.0.1&service=WCS"); assertEquals("0", xpath.evaluate("count(//ows:Operation[@name='DescribeEOCoverageSet'])", dom)); assertEquals("0", xpath.evaluate("count(//ows:Constraint[@name='CountDefault'])", dom)); assertEquals("0", xpath.evaluate("count(//wcs:Extension/wcseo:DatasetSeriesSummary)", dom)); } }