/* (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.ows.xml.v1_0;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import net.opengis.ows10.ExceptionReportType;
import net.opengis.ows10.ExceptionType;
import org.geotools.xml.Configuration;
import org.geotools.xml.test.XMLTestSupport;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
public class ExceptionReportBindingTest extends XMLTestSupport {
@Override
protected Configuration createConfiguration() {
return new OWSConfiguration();
}
Document dom(String xml) throws ParserConfigurationException, SAXException, IOException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(new ByteArrayInputStream(xml.getBytes()));
}
public void testParseServiceException() throws Exception {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<ows:ExceptionReport version=\"1.0.0\"\n"
+ " xsi:schemaLocation=\"http://www.opengis.net/ows http://demo.opengeo.org/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd\"\n"
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ows=\"http://www.opengis.net/ows\">\n"
+ " <ows:Exception exceptionCode=\"InvalidParameterValue\" locator=\"service\">\n"
+ " <ows:ExceptionText>No service: ( madeUp )</ows:ExceptionText>\n"
+ " </ows:Exception>\n" + "</ows:ExceptionReport>\n" + "";
document = dom(xml);
Object result = parse(OWS.EXCEPTIONREPORT);
assertNotNull(result);
assertTrue(result instanceof ExceptionReportType);
ExceptionReportType er = (ExceptionReportType) result;
assertEquals("1.0.0", er.getVersion());
assertEquals(1, er.getException().size());
ExceptionType ex = (ExceptionType) er.getException().get(0);
assertEquals("InvalidParameterValue", ex.getExceptionCode());
assertEquals("service", ex.getLocator());
assertEquals(1, ex.getExceptionText().size());
assertEquals("No service: ( madeUp )", ex.getExceptionText().get(0));
}
}