/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.wfs.bindings;
import java.math.BigInteger;
import net.opengis.wfs.XlinkPropertyNameType;
import org.geotools.wfs.WFS;
import org.geotools.wfs.WFSTestSupport;
import org.geotools.xml.Binding;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Unit test suite for {@link _XlinkPropertyNameBinding}
*
* @author Gabriel Roldan (TOPP)
* @version $Id$
* @since 2.5.x
* @source $URL$
*/
public class _XlinkPropertyNameBindingTest extends WFSTestSupport {
public _XlinkPropertyNameBindingTest() {
super(WFS._XlinkPropertyName, XlinkPropertyNameType.class, Binding.OVERRIDE);
}
public void testEncode() throws Exception {
XlinkPropertyNameType xlink = factory.createXlinkPropertyNameType();
xlink.setTraverseXlinkDepth("1");
xlink.setTraverseXlinkExpiry(BigInteger.valueOf(10));
xlink.setValue("gt:propertyC/gt:propertyD");
Document dom = encode(xlink, WFS.XlinkPropertyName);
Element root = dom.getDocumentElement();
assertName(WFS.XlinkPropertyName, root);
assertEquals("1", root.getAttribute("traverseXlinkDepth"));
assertEquals("10", root.getAttribute("traverseXlinkExpiry"));
assertEquals("gt:propertyC/gt:propertyD", root.getFirstChild().getNodeValue());
}
public void testParse() throws Exception {
final String xml = "<XlinkPropertyName traverseXlinkDepth=\"1\" "
+ "traverseXlinkExpiry=\"10\">gt:propertyC/gt:propertyD</XlinkPropertyName>";
buildDocument(xml);
Object parsed = parse();
assertTrue(parsed instanceof XlinkPropertyNameType);
XlinkPropertyNameType xlink = (XlinkPropertyNameType) parsed;
assertEquals("1", xlink.getTraverseXlinkDepth());
assertEquals(BigInteger.valueOf(10), xlink.getTraverseXlinkExpiry());
assertEquals("gt:propertyC/gt:propertyD", xlink.getValue());
}
}