package org.geoserver.gss.xml;
import static org.custommonkey.xmlunit.XMLAssert.*;
import java.util.List;
import javax.xml.namespace.QName;
import org.geoserver.gss.CentralRevisionsType;
import org.geoserver.gss.CentralRevisionsType.LayerRevision;
import org.w3c.dom.Document;
public class CentralRevisionsTypeBindingTest extends GSSXMLTestSupport {
public void testParse() throws Exception {
document = dom("CentralRevisionsResponse.xml");
CentralRevisionsType cr = (CentralRevisionsType) parse(GSS.CentralRevisionsType);
List<LayerRevision> layerRevisions = cr.getLayerRevisions();
assertEquals(2, layerRevisions.size());
LayerRevision layerRevision = layerRevisions.get(0);
assertEquals("archsites", layerRevision.getTypeName().getLocalPart());
assertEquals(SF_NAMESPACE, layerRevision.getTypeName().getNamespaceURI());
assertEquals(15, layerRevision.getCentralRevision());
layerRevision = layerRevisions.get(1);
assertEquals("restricted", layerRevision.getTypeName().getLocalPart());
assertEquals(SF_NAMESPACE, layerRevision.getTypeName().getNamespaceURI());
assertEquals(22, layerRevision.getCentralRevision());
}
public void testEncode() throws Exception {
CentralRevisionsType cr = new CentralRevisionsType();
cr.getLayerRevisions().add(new LayerRevision(new QName(SF_NAMESPACE, "archsites"), 15));
Document doc = encode(cr, GSS.CentralRevisions);
// print(doc);
assertXpathEvaluatesTo("1", "count(//gss:CentralRevisions/gss:LayerRevision)", doc);
assertXpathEvaluatesTo("sf:archsites", "//gss:CentralRevisions/gss:LayerRevision/@typeName", doc);
assertXpathEvaluatesTo("15", "//gss:CentralRevisions/gss:LayerRevision/@centralRevision", doc);
}
}