/* (c) 2014 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.wfs; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.IOException; import javax.xml.namespace.QName; import org.custommonkey.xmlunit.XMLAssert; import org.geoserver.catalog.Catalog; import org.geoserver.catalog.FeatureTypeInfo; import org.geoserver.data.test.CiteTestData; import org.geoserver.data.test.SystemTestData; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class AliasTest extends WFSTestSupport { @Override protected void setUpInternal(SystemTestData testData) throws Exception { setAliasedType( CiteTestData.FIFTEEN, "ft15", getCatalog()); } private void setAliasedType( QName qName, String alias, Catalog catalog) throws IOException { String name = qName.getLocalPart(); FeatureTypeInfo featureType = catalog.getFeatureTypeByName(name); featureType.setName(alias); getCatalog().save(featureType); } @Test public void testAliasFifteen() throws Exception { Document doc = getAsDOM("wfs?request=GetFeature&typename=cdf:ft15&version=1.0.0&service=wfs"); assertEquals("wfs:FeatureCollection", doc.getDocumentElement().getNodeName()); assertTrue(doc.getElementsByTagName("gml:featureMember").getLength() > 0); assertTrue(doc.getElementsByTagName("cdf:ft15").getLength() > 0); } @Test public void testGetByFeatureId() throws Exception { Document doc = getAsDOM("wfs?request=GetFeature&typename=cdf:ft15&version=1.0.0&featureId=ft15.1"); assertEquals("wfs:FeatureCollection", doc.getDocumentElement().getNodeName()); assertEquals(1, doc.getElementsByTagName("gml:featureMember").getLength()); final NodeList features = doc.getElementsByTagName("cdf:ft15"); assertEquals(1, features.getLength()); Node feature = features.item(0); final Node fidNode = feature.getAttributes().getNamedItem("fid"); assertEquals("ft15.1", fidNode.getTextContent()); } @Test public void testDescribeFeatureType() throws Exception { Document doc = getAsDOM("wfs?request=DescribeFeatureType&typename=cdf:ft15&version=1.0.0"); print(doc); assertEquals("xsd:schema", doc.getDocumentElement().getNodeName()); XMLAssert.assertXpathEvaluatesTo("ft15", "/xs:schema/xs:element/@name", doc); } }