package org.geotools.ows.v1_1;
import net.opengis.ows11.Ows11Factory;
import net.opengis.ows11.RangeClosureType;
import net.opengis.ows11.RangeType;
import net.opengis.ows11.ValueType;
import org.geotools.xml.Encoder;
import org.geotools.xml.Parser;
import org.junit.Test;
public class RangeTest extends OWSTestSupport {
@Test
public void testParseRange() throws Exception {
Parser p = new Parser(createConfiguration());
Object o = p.parse(getClass().getResourceAsStream("range.xml"));
RangeType rt = (RangeType) o;
assertEquals(RangeClosureType.CLOSED_LITERAL, rt.getRangeClosure());
assertEquals("0.0", rt.getMinimumValue().getValue());
assertEquals("100.0", rt.getMaximumValue().getValue());
}
@Test
public void testParseOpenClosed() throws Exception {
Parser p = new Parser(createConfiguration());
Object o = p.parse(getClass().getResourceAsStream("range-open-closed.xml"));
RangeType rt = (RangeType) o;
assertEquals(RangeClosureType.OPEN_CLOSED_LITERAL, rt.getRangeClosure());
assertNull(rt.getMinimumValue());
assertEquals("100.0", rt.getMaximumValue().getValue());
}
@Test
public void testEncodeClosedRange() throws Exception {
Encoder encoder = new Encoder(createConfiguration());
Ows11Factory factory = Ows11Factory.eINSTANCE;
RangeType rangeType = factory.createRangeType();
ValueType min = factory.createValueType();
min.setValue("0");
rangeType.setMinimumValue(min);
ValueType max = factory.createValueType();
max.setValue("10");
rangeType.setMaximumValue(max);
encoder.setIndenting(true);
String xml = encoder.encodeAsString(rangeType, OWS.Range);
// System.out.println(xml);
assertTrue(xml.contains("ows:rangeClosure=\"closed\""));
}
@Test
public void testEncodeClosedOpenRange() throws Exception {
Encoder encoder = new Encoder(createConfiguration());
Ows11Factory factory = Ows11Factory.eINSTANCE;
RangeType rangeType = factory.createRangeType();
ValueType min = factory.createValueType();
min.setValue("0");
rangeType.setMinimumValue(min);
rangeType.setRangeClosure(RangeClosureType.CLOSED_OPEN_LITERAL);
encoder.setIndenting(true);
String xml = encoder.encodeAsString(rangeType, OWS.Range);
// System.out.println(xml);
assertTrue(xml.contains("ows:rangeClosure=\"closed-open\""));
}
}