Package org.geoserver.wcs2_0.kvp

Source Code of org.geoserver.wcs2_0.kvp.SubsetKvpParserTest

package org.geoserver.wcs2_0.kvp;

import static org.junit.Assert.*;
import net.opengis.wcs20.DimensionSliceType;
import net.opengis.wcs20.DimensionTrimType;

import org.geoserver.platform.OWS20Exception;
import org.junit.Test;

public class SubsetKvpParserTest {

    SubsetKvpParser parser = new SubsetKvpParser();
   
    @Test
    public void testInvalidValues() throws Exception {
        try {
            parser.parse("test");
            fail("should have thrown an exception");
        } catch(OWS20Exception e) {
            checkInvalidSyntaxException(e);
        }
       
        try {
            parser.parse("test,EPSG:4326");
            fail("should have thrown an exception");
        } catch(OWS20Exception e) {
            checkInvalidSyntaxException(e);
        }
       
        try {
            parser.parse("test(,");
            fail("should have thrown an exception");
        } catch(OWS20Exception e) {
            checkInvalidSyntaxException(e);
        }
       
        try {
            parser.parse("test(,)");
            fail("should have thrown an exception");
        } catch(OWS20Exception e) {
            checkInvalidSyntaxException(e);
        }

        try {
            parser.parse("test(\"abc,def\",abc)");
            fail("should have thrown an exception");
        } catch(OWS20Exception e) {
            checkInvalidSyntaxException(e);
        }
    }
   
    @Test
    public void testSliceString() throws Exception {
        DimensionSliceType result = (DimensionSliceType) parser.parse("mydim(\"myvalue\")");
        assertEquals("mydim", result.getDimension());
        assertEquals("myvalue", result.getSlicePoint());
    }
   
    @Test
    public void testSliceNumber() throws Exception {
        DimensionSliceType result = (DimensionSliceType) parser.parse("mydim(12345)");
        assertEquals("mydim", result.getDimension());
        assertEquals("12345", result.getSlicePoint());
    }
   
    @Test
    public void testTrimOpen() throws Exception {
        // not sure if this makes any sense, but the sytax allows it, and it's like not
        // specifying anything
        DimensionTrimType result = (DimensionTrimType) parser.parse("lon,EPSG:4326(*,*)");
        assertEquals("lon", result.getDimension());
        assertEquals("EPSG:4326", result.getCRS());
        assertNull(result.getTrimLow());
        assertNull(result.getTrimHigh());
    }
   
    @Test
    public void testTrimNumbers() throws Exception {
        // not sure if this makes any sense, but the sytax allows it, and it's like not
        // specifying anything
        DimensionTrimType result = (DimensionTrimType) parser.parse("lon,EPSG:4326(10,20)");
        assertEquals("lon", result.getDimension());
        assertEquals("EPSG:4326", result.getCRS());
        assertEquals("10", result.getTrimLow());
        assertEquals("20", result.getTrimHigh());
    }
   
    @Test
    public void testTrimStringsCommas() throws Exception {
        // not sure if this makes any sense, but the sytax allows it, and it's like not
        // specifying anything
        DimensionTrimType result = (DimensionTrimType) parser.parse("mydim(\"a,b\",\"c,d\")");
        assertEquals("mydim", result.getDimension());
        assertNull(result.getCRS());
        assertEquals("a,b", result.getTrimLow());
        assertEquals("c,d", result.getTrimHigh());
    }

    private void checkInvalidSyntaxException(OWS20Exception e) {
        assertNotNull(e.getHttpCode());
        assertEquals(400, e.getHttpCode().intValue());
        assertEquals("InvalidEncodingSyntax", e.getCode());
        assertEquals("subset", e.getLocator());
    }
}
TOP

Related Classes of org.geoserver.wcs2_0.kvp.SubsetKvpParserTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.