package org.geoserver.wfs.v2_0; import org.custommonkey.xmlunit.XMLAssert; import org.geoserver.data.test.MockData; import org.w3c.dom.Document; public class GetPropertyValueTest extends WFS20TestSupport { public void testPOST() throws Exception { String xml = "<wfs:GetPropertyValue service='WFS' version='2.0.0' " + "xmlns:sf='" + MockData.SF_URI + "' " + "xmlns:fes='http://www.opengis.net/fes/2.0' " + "xmlns:wfs='http://www.opengis.net/wfs/2.0' valueReference='pointProperty'> " + "<wfs:Query typeNames='sf:PrimitiveGeoFeature'/> " + "</wfs:GetPropertyValue>"; Document dom = postAsDOM("wfs", xml); assertEquals("wfs:ValueCollection", dom.getDocumentElement().getNodeName()); XMLAssert.assertXpathEvaluatesTo("3", "count(//wfs:member)", dom); XMLAssert.assertXpathEvaluatesTo("3", "count(//wfs:member/sf:pointProperty/gml:Point)", dom); } public void testGET() throws Exception { Document dom = getAsDOM("wfs?service=WFS&version=2.0.0&request=GetPropertyValue" + "&typeNames=sf:PrimitiveGeoFeature&valueReference=pointProperty"); assertEquals("wfs:ValueCollection", dom.getDocumentElement().getNodeName()); XMLAssert.assertXpathEvaluatesTo("3", "count(//wfs:member)", dom); XMLAssert.assertXpathEvaluatesTo("3", "count(//wfs:member/sf:pointProperty/gml:Point)", dom); } public void testResolveException() throws Exception { String xml = "<wfs:GetPropertyValue service='WFS' version='2.0.0' " + "xmlns:sf='" + MockData.SF_URI + "' " + "xmlns:fes='http://www.opengis.net/fes/2.0' " + "xmlns:wfs='http://www.opengis.net/wfs/2.0' " + "valueReference='pointProperty' resolve='none'> " + "<wfs:Query typeNames='sf:PrimitiveGeoFeature'/> " + "</wfs:GetPropertyValue>"; Document dom = postAsDOM("wfs", xml); assertEquals("wfs:ValueCollection", dom.getDocumentElement().getNodeName()); xml = "<wfs:GetPropertyValue service='WFS' version='2.0.0' " + "xmlns:sf='" + MockData.SF_URI + "' " + "xmlns:fes='http://www.opengis.net/fes/2.0' " + "xmlns:wfs='http://www.opengis.net/wfs/2.0' " + "valueReference='pointProperty' resolve='local'> " + "<wfs:Query typeNames='sf:PrimitiveGeoFeature'/> " + "</wfs:GetPropertyValue>"; dom = postAsDOM("wfs", xml); assertEquals("ows:ExceptionReport", dom.getDocumentElement().getNodeName()); XMLAssert.assertXpathEvaluatesTo("InvalidParameterValue", "//ows:Exception/@exceptionCode", dom); XMLAssert.assertXpathEvaluatesTo("resolve", "//ows:Exception/@locator", dom); } }