/* (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.test; import static org.junit.Assert.*; import org.junit.Test; import org.geotools.wfs.v2_0.WFS; import org.w3c.dom.Document; /** * WFS test based on samplingSpecimen 2.0, a GML 3.2 application schema. * * @author Ben Caradoc-Davies, CSIRO Earth Science and Resource Engineering */ public class SpecimenWfsTest extends AbstractAppSchemaTestSupport { /** * @see org.geoserver.test.AbstractAppSchemaTestSupport#buildTestData() */ @Override protected SpecimenMockData createTestData() { return new SpecimenMockData(); } /** * Test whether GetFeature returns wfs:FeatureCollection. */ @Test public void testGetFeature() { String path = "wfs?version=1.1.0&request=GetFeature&typename=spec:SF_Specimen&outputFormat=gml32"; String newline = System.getProperty("line.separator"); Document doc = getAsDOM(path); LOGGER.info("Response for " + path + " :" + newline + prettyString(doc)); assertEquals(WFS.NAMESPACE, doc.getDocumentElement().getNamespaceURI()); assertEquals("FeatureCollection", doc.getDocumentElement().getLocalName()); } /** * Test whether GetFeature response is schema-valid. */ @Test public void testGetFeatureValid() { String path = "wfs?version=1.1.0&request=GetFeature&typename=spec:SF_Specimen&outputformat=gml32"; String newline = System.getProperty("line.separator"); Document doc = getAsDOM(path); LOGGER.info("Response for " + path + " :" + newline + prettyString(doc)); validateGet(path); } /** * Test whether GetFeature response has expected content. */ @Test public void testGetFeatureContent() { String path = "wfs?version=1.1.0&request=GetFeature&typename=spec:SF_Specimen&outputformat=gml32"; String newline = System.getProperty("line.separator"); Document doc = getAsDOM(path); LOGGER.info("Response for " + path + " :" + newline + prettyString(doc)); assertXpathEvaluatesTo("2", "/wfs:FeatureCollection/@numberReturned", doc); assertXpathEvaluatesTo("unknown", "/wfs:FeatureCollection/@numberMatched", doc); assertXpathCount(2, "//spec:SF_Specimen", doc); assertXpathEvaluatesTo("First", "//spec:SF_Specimen[@gml:id='specimen.1']/gml:name", doc); assertXpathEvaluatesTo("2.7", "//spec:SF_Specimen[@gml:id='specimen.1']/spec:size", doc); assertXpathEvaluatesTo("http://www.opengis.net/def/uom/UCUM/g", "//spec:SF_Specimen[@gml:id='specimen.1']/spec:size/@uom", doc); assertXpathEvaluatesTo("Second", "//spec:SF_Specimen[@gml:id='specimen.2']/gml:name", doc); assertXpathEvaluatesTo("0.31", "//spec:SF_Specimen[@gml:id='specimen.2']/spec:size", doc); assertXpathEvaluatesTo("http://www.opengis.net/def/uom/UCUM/g", "//spec:SF_Specimen[@gml:id='specimen.2']/spec:size/@uom", doc); } }