📄 getfeaturetest.java
字号:
package org.geoserver.wfs.v1_1;
import javax.xml.namespace.QName;
import junit.textui.TestRunner;
import org.geoserver.data.test.MockData;
import org.geoserver.wfs.WFSTestSupport;
import org.geotools.gml3.bindings.GML;
import org.geotools.referencing.CRS;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class GetFeatureTest extends WFSTestSupport {
public void testGet() throws Exception {
Document doc = getAsDOM("wfs?request=GetFeature&typename=cdf:Fifteen&version=1.1.0&service=wfs");
assertEquals("wfs:FeatureCollection", doc.getDocumentElement()
.getNodeName());
NodeList features = doc.getElementsByTagName("cdf:Fifteen");
assertFalse(features.getLength() == 0);
for (int i = 0; i < features.getLength(); i++) {
Element feature = (Element) features.item(i);
assertTrue(feature.hasAttribute("gml:id"));
}
}
public void testPost() throws Exception {
String xml = "<wfs:GetFeature " + "service=\"WFS\" "
+ "version=\"1.1.0\" "
+ "xmlns:cdf=\"http://www.opengis.net/cite/data\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" " + "> "
+ "<wfs:Query typeName=\"cdf:Other\"> "
+ "<wfs:PropertyName>cdf:string2</wfs:PropertyName> "
+ "</wfs:Query> " + "</wfs:GetFeature>";
Document doc = postAsDOM("wfs", xml);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement()
.getNodeName());
NodeList features = doc.getElementsByTagName("cdf:Other");
assertFalse(features.getLength() == 0);
for (int i = 0; i < features.getLength(); i++) {
Element feature = (Element) features.item(i);
assertTrue(feature.hasAttribute("gml:id"));
}
}
public void testPostFormEncoded() throws Exception {
String request = "wfs?service=WFS&version=1.1.0&request=GetFeature&typename=sf:PrimitiveGeoFeature"
+ "&namespace=xmlns(sf=http://cite.opengeospatial.org/gmlsf)";
Document doc = postAsDOM(request);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement()
.getNodeName());
assertEquals(5, doc.getElementsByTagName("sf:PrimitiveGeoFeature")
.getLength());
}
public void testPostWithFilter() throws Exception {
String xml = "<wfs:GetFeature " + "service=\"WFS\" "
+ "version=\"1.1.0\" "
+ "outputFormat=\"text/xml; subtype=gml/3.1.1\" "
+ "xmlns:cdf=\"http://www.opengis.net/cite/data\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" > "
+ "<wfs:Query typeName=\"cdf:Other\"> " + "<ogc:Filter> "
+ "<ogc:PropertyIsEqualTo> "
+ "<ogc:PropertyName>cdf:integers</ogc:PropertyName> "
+ "<ogc:Add> " + "<ogc:Literal>4</ogc:Literal> "
+ "<ogc:Literal>3</ogc:Literal> " + "</ogc:Add> "
+ "</ogc:PropertyIsEqualTo> " + "</ogc:Filter> "
+ "</wfs:Query> " + "</wfs:GetFeature>";
Document doc = postAsDOM("wfs", xml);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement()
.getNodeName());
NodeList features = doc.getElementsByTagName("cdf:Other");
assertFalse(features.getLength() == 0);
for (int i = 0; i < features.getLength(); i++) {
Element feature = (Element) features.item(i);
assertTrue(feature.hasAttribute("gml:id"));
}
}
public void testPostWithBboxFilter() throws Exception {
String xml = "<wfs:GetFeature " + "service=\"WFS\" "
+ "version=\"1.1.0\" "
+ "outputFormat=\"text/xml; subtype=gml/3.1.1\" "
+ "xmlns:gml=\"http://www.opengis.net/gml\" "
+ "xmlns:sf=\"http://www.opengis.net/cite/data\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" > "
+ "<wfs:Query typeName=\"sf:PrimitiveGeoFeature\">"
+ "<ogc:Filter>"
+ "<ogc:BBOX>"
+ " <ogc:PropertyName>pointProperty</ogc:PropertyName>"
+ " <gml:Envelope srsName=\"EPSG:4326\">"
+ " <gml:lowerCorner>57.0 -4.5</gml:lowerCorner>"
+ " <gml:upperCorner>62.0 1.0</gml:upperCorner>"
+ " </gml:Envelope>"
+ "</ogc:BBOX>"
+ "</ogc:Filter>"
+ "</wfs:Query>"
+ "</wfs:GetFeature>";
Document doc = postAsDOM("wfs", xml);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement()
.getNodeName());
NodeList features = doc.getElementsByTagName("sf:PrimitiveGeoFeature");
assertEquals(1, features.getLength());
}
public void testPostWithFailingUrnBboxFilter() throws Exception {
String xml = "<wfs:GetFeature " + "service=\"WFS\" "
+ "version=\"1.1.0\" "
+ "outputFormat=\"text/xml; subtype=gml/3.1.1\" "
+ "xmlns:gml=\"http://www.opengis.net/gml\" "
+ "xmlns:sf=\"http://www.opengis.net/cite/data\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" > "
+ "<wfs:Query typeName=\"sf:PrimitiveGeoFeature\">"
+ "<ogc:Filter>"
+ "<ogc:BBOX>"
+ " <ogc:PropertyName>pointProperty</ogc:PropertyName>"
+ " <gml:Envelope srsName=\"urn:x-ogc:def:crs:EPSG:6.11.2:4326\">"
+ " <gml:lowerCorner>57.0 -4.5</gml:lowerCorner>"
+ " <gml:upperCorner>62.0 1.0</gml:upperCorner>"
+ " </gml:Envelope>"
+ "</ogc:BBOX>"
+ "</ogc:Filter>"
+ "</wfs:Query>"
+ "</wfs:GetFeature>";
Document doc = postAsDOM("wfs", xml);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement().getNodeName());
NodeList features = doc.getElementsByTagName("sf:PrimitiveGeoFeature");
assertEquals(0, features.getLength());
}
public void testPostWithMatchingUrnBboxFilter() throws Exception {
String xml = "<wfs:GetFeature " + "service=\"WFS\" "
+ "version=\"1.1.0\" "
+ "outputFormat=\"text/xml; subtype=gml/3.1.1\" "
+ "xmlns:gml=\"http://www.opengis.net/gml\" "
+ "xmlns:sf=\"http://www.opengis.net/cite/data\" "
+ "xmlns:wfs=\"http://www.opengis.net/wfs\" "
+ "xmlns:ogc=\"http://www.opengis.net/ogc\" > "
+ "<wfs:Query typeName=\"sf:PrimitiveGeoFeature\">"
+ "<ogc:Filter>"
+ "<ogc:BBOX>"
+ " <ogc:PropertyName>pointProperty</ogc:PropertyName>"
+ " <gml:Envelope srsName=\"urn:x-ogc:def:crs:EPSG:6.11.2:4326\">"
+ " <gml:lowerCorner>-4.5 57.0</gml:lowerCorner>"
+ " <gml:upperCorner>1.0 62.0</gml:upperCorner>"
+ " </gml:Envelope>"
+ "</ogc:BBOX>"
+ "</ogc:Filter>"
+ "</wfs:Query>"
+ "</wfs:GetFeature>";
Document doc = postAsDOM("wfs", xml);
assertEquals("wfs:FeatureCollection", doc.getDocumentElement().getNodeName());
NodeList features = doc.getElementsByTagName("sf:PrimitiveGeoFeature");
assertEquals(1, features.getLength());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -