package org.geoserver.csw.store.internal;
import static org.custommonkey.xmlunit.XMLAssert.assertXpathEvaluatesTo;
import static org.custommonkey.xmlunit.XMLAssert.assertXpathExists;
import org.junit.Test;
import org.w3c.dom.Document;
/**
*
* @author Niels Charlier
*
*/
public class DescribeRecordTest extends CSWInternalTestSupport {
@Test
public void testBasicGetLocalSchemaRecord() throws Exception {
Document dom = getAsDOM("csw?service=CSW&version=2.0.2&request=DescribeRecord&typeName=csw:Record");
checkValidationErrors(dom);
//print(dom);
assertXpathEvaluatesTo("1", "count(//csw:SchemaComponent)", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2']", dom);
assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'BriefRecord'])", dom);
assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'SummaryRecord'])", dom);
assertXpathEvaluatesTo("1", "count(//xsd:element[@name = 'Record'])", dom);
assertXpathEvaluatesTo("http://localhost:8080/geoserver/schemas/csw/2.0.2/rec-dcterms.xsd",
"//xsd:import[@namespace = 'http://purl.org/dc/terms/']/@schemaLocation", dom);
}
@Test
public void testBasicGetLocalSchemaMetaData() throws Exception {
Document dom = getAsDOM("csw?service=CSW&version=2.0.2&request=DescribeRecord&typeName=gmd:MD_Metadata");
checkValidationErrors(dom);
//print(dom);
assertXpathEvaluatesTo("2", "count(//csw:SchemaComponent)", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.isotc211.org/2005/gmd']", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.isotc211.org/2005/srv']", dom);
assertXpathExists("//xs:element[@name='AbstractMD_Identification']", dom);
assertXpathExists("//xs:element[@name='MD_Keywords']", dom);
}
@Test
public void testBasicGetLocalSchemaAll() throws Exception {
Document dom = getAsDOM("csw?service=CSW&version=2.0.2&request=DescribeRecord");
checkValidationErrors(dom);
//print(dom);
assertXpathEvaluatesTo("3", "count(//csw:SchemaComponent)", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.opengis.net/cat/csw/2.0.2']", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.isotc211.org/2005/gmd']", dom);
assertXpathExists("//csw:SchemaComponent/xsd:schema[@targetNamespace='http://www.isotc211.org/2005/srv']", dom);
}
}