package org.geoserver.wfsv;
import static org.custommonkey.xmlunit.XMLAssert.assertXpathEvaluatesTo;
import junit.framework.Test;
import org.geoserver.ows.util.ResponseUtils;
import org.w3c.dom.Document;
public class DescribeVersionedFeatureTypeTest extends WFSVTestSupport {
@Override
protected String getLogConfiguration() {
return "/DEFAULT_LOGGING.properties";
}
/**
* This is a READ ONLY TEST so we can use one time setup
*/
public static Test suite() {
return new OneTimeTestSetup(new DescribeVersionedFeatureTypeTest());
}
public void testValidateInvalidRequest() throws Exception {
String request = "<DescribeVersionedFeatureType\r\n" +
" version=\"1.0.0\"\r\n" +
" service=\"WFSV\" versioned=\"true\"\r\n" +
" xmlns=\"http://www.opengis.net/wfsv\"\r\n" +
" xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n" +
" xmlns:wfsv=\"http://www.opengis.net/wfsv\"\r\n" +
" xmlns:topp=\"http://www.openplans.org/topp\"\r\n>\r\n" +
" <wfsv:InvalidElement>topp:archsites</wfsv:InvalidElement>\r\n" +
"</DescribeVersionedFeatureType>";
Document dom = postAsDOM(root() + "strict=true", request);
assertEquals("ServiceExceptionReport", dom.getDocumentElement().getNodeName());
}
public void testDescribeArcsitesPost10() throws Exception {
String request = "<DescribeVersionedFeatureType\r\n" +
" version=\"1.0.0\"\r\n" +
" service=\"WFSV\" versioned=\"true\"\r\n" +
" xmlns=\"http://www.opengis.net/wfsv\"\r\n" +
" xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n" +
" xmlns:wfsv=\"http://www.opengis.net/wfsv\"\r\n" +
" xmlns:topp=\"http://www.openplans.org/topp\"\r\n>\r\n" +
" <wfsv:TypeName>topp:archsites</wfsv:TypeName>\r\n" +
"</DescribeVersionedFeatureType>";
Document dom = postAsDOM(root() + "strict=true", request);
//print(dom);
assertXpathEvaluatesTo("1", "count(//xs:schema)", dom);
assertXpathEvaluatesTo("http://www.opengis.net/wfsv", "/xs:schema/xs:import/@namespace", dom);
assertXpathEvaluatesTo("wfsv:AbstractVersionedFeatureType", "/xs:schema/xs:complexType/xs:complexContent/xs:extension/@base", dom);
}
public void testDescribeArcsitesGet10() throws Exception {
String request =
ResponseUtils.appendQueryString(root() , "service=wfsv&version=1.0.0&request=DescribeVersionedFeatureType&typeName=topp:archsites");
Document dom = getAsDOM(request);
//print(dom);
assertXpathEvaluatesTo("1", "count(//xs:schema)", dom);
assertXpathEvaluatesTo("http://www.opengis.net/wfsv", "/xs:schema/xs:import/@namespace", dom);
assertXpathEvaluatesTo("wfsv:AbstractVersionedFeatureType", "/xs:schema/xs:complexType/xs:complexContent/xs:extension/@base", dom);
}
public void testDescribeArcsitesPost11() throws Exception {
String request = "<DescribeVersionedFeatureType\r\n" +
" version=\"1.1.0\"\r\n" +
" service=\"WFSV\" versioned=\"true\"\r\n" +
" xmlns=\"http://www.opengis.net/wfsv\"\r\n" +
" xmlns:wfs=\"http://www.opengis.net/wfs\"\r\n" +
" xmlns:topp=\"http://www.openplans.org/topp\"\r\n" +
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n" +
" xsi:schemaLocation=\"http://www.opengis.net/wfsv http://localhost:8080/geoserver/schemas/wfs/1.1.0/wfsv.xsd\">\r\n" +
" <wfs:TypeName>topp:archsites</wfs:TypeName>\r\n" +
"</DescribeVersionedFeatureType>";
Document dom = postAsDOM(root(), request);
//print(dom);
assertXpathEvaluatesTo("http://www.opengis.net/wfsv", "/xs:schema/xs:import/@namespace", dom);
assertXpathEvaluatesTo("wfsv:AbstractVersionedFeatureType", "/xs:schema/xs:complexType/xs:complexContent/xs:extension/@base", dom);
}
public void testDescribeArcsitesGet11() throws Exception {
String request = ResponseUtils.appendQueryString( root(),"service=wfsv&version=1.1.0&request=DescribeVersionedFeatureType&typeName=topp:archsites" );
Document dom = getAsDOM(request);
assertXpathEvaluatesTo("http://www.opengis.net/wfsv", "/xs:schema/xs:import/@namespace", dom);
assertXpathEvaluatesTo("wfsv:AbstractVersionedFeatureType", "/xs:schema/xs:complexType/xs:complexContent/xs:extension/@base", dom);
}
}