Package it.geosolutions.geoserver.rest.encoder.coverage

Source Code of it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoderTest

/*
*  Copyright (C) 2007 - 2011 GeoSolutions S.A.S.
*  http://www.geo-solutions.it
*
*  GPLv3 + Classpath exception
*
*  This program is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 3 of the License, or
*  (at your option) any later version.
*
*  This program 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 General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package it.geosolutions.geoserver.rest.encoder.coverage;

import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder;
import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder.ProjectionPolicy;
import it.geosolutions.geoserver.rest.encoder.dimensions.GSCoverageDimensionEncoder;
import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder;
import it.geosolutions.geoserver.rest.encoder.metadata.GSDimensionInfoEncoder.Presentation;
import it.geosolutions.geoserver.rest.encoder.utils.ElementUtils;
import junit.framework.TestCase;

import org.jdom.Element;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
*
* @author Carlo Cancellieri - carlo.cancellieri@geo-solutions.it
*/
public class GSCoverageEncoderTest extends TestCase {
  public static final String WGS84="GEOGCS[\"WGS84(DD)," +
   "DATUM[\"WGS84\"," +
   "SPHEROID[\"WGS84\", 6378137.0, 298.257223563]]," +
   "PRIMEM[\"Greenwich\", 0.0]," +
   "UNIT[\"degree\", 0.017453292519943295]," +
   "AXIS[\"Geodetic longitude\", EAST]," +
   "AXIS[\"Geodetic latitude\", NORTH]]";

    public GSCoverageEncoderTest() {
    }

    /**
     * Default logger
     */
    protected final static Logger LOGGER = LoggerFactory.getLogger(GSCoverageEncoderTest.class);
   
  /**
   * test set or reset of reprojection
   */
  @Test
  public void testReprojection(){
    GSResourceEncoder/*<GSDimensionInfoEncoder>*/ re=new GSCoverageEncoder();
   
    re.setProjectionPolicy(ProjectionPolicy.FORCE_DECLARED);
    re.setSRS("EPSG:4326");
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"projectionPolicy",ProjectionPolicy.FORCE_DECLARED.toString()));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"srs","EPSG:4326"));
   
    re.setProjectionPolicy(ProjectionPolicy.NONE);
    re.setNativeCRS("EPSG:4326");
    Assert.assertNull(ElementUtils.contains(re.getRoot(),"projectionPolicy",ProjectionPolicy.FORCE_DECLARED.toString()));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"projectionPolicy",ProjectionPolicy.NONE.toString()));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"nativeCRS","EPSG:4326"));
   
    re.setProjectionPolicy(ProjectionPolicy.REPROJECT_TO_DECLARED);
    re.setNativeCRS(WGS84);
    re.setSRS("EPSG:4326");
    Assert.assertNull(ElementUtils.contains(re.getRoot(),"projectionPolicy",ProjectionPolicy.FORCE_DECLARED.toString()));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"nativeCRS",WGS84));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"srs","EPSG:4326"));
  }
 
  /**
   * test set or reset of BB
   */
  @Test
  public void testBB(){
    GSResourceEncoder/*<GSDimensionInfoEncoder>*/ re=new GSCoverageEncoder();
   
    re.setLatLonBoundingBox(-180d, 90d, 180d, -90d, WGS84);
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"minx","-180.0"));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"crs",WGS84));
   
    re.setLatLonBoundingBox(-90d, 45d, 180d, -90d, WGS84);
   
    Assert.assertNull(ElementUtils.contains(re.getRoot(),"minx","-180.0"));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"minx","-90.0"));
    Assert.assertNotNull(ElementUtils.contains(re.getRoot(),"crs",WGS84));
  }
   
    @Test
    public void testAll() {
      final GSCoverageEncoder encoder=new GSCoverageEncoder();
      encoder.addKeyword("KEYWORD_1");
      encoder.addKeyword("KEYWORD_2");
      encoder.addKeyword("...");
      encoder.addKeyword("KEYWORD_N");
     
     
      // setting dimensions (into metadata)
      final GSDimensionInfoEncoder timeDimension=new GSDimensionInfoEncoder(true);
      timeDimension.setPresentation(Presentation.CONTINUOUS_INTERVAL);
      encoder.setMetadata("time", timeDimension);
     
      if (LOGGER.isInfoEnabled())
        LOGGER.info(encoder.toString());
     
      final Element el=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA);
      Assert.assertNotNull(el);
      LOGGER.info("contains_key:"+el.toString());
     
      final GSDimensionInfoEncoder elevationDimension=new GSDimensionInfoEncoder(true);
      elevationDimension.setPresentation(Presentation.LIST);
      encoder.setMetadata("elevation", elevationDimension);
     
        // setting dimensions (since gs-2.4.x)
      GSCoverageDimensionEncoder gsCoverageDimensionEncoder = new GSCoverageDimensionEncoder(
                "GRAY_INDEX", "GridSampleDimension[-Infinity,Infinity]", "-inf", "inf",
                "dobson unitsĀ³", "REAL_32BITS");
        encoder.addCoverageDimensionInfo(gsCoverageDimensionEncoder);

      if (LOGGER.isInfoEnabled())
        LOGGER.info(encoder.toString());
     
      final Element el2=ElementUtils.contains(encoder.getRoot(),GSDimensionInfoEncoder.PRESENTATION);
      Assert.assertNotNull(el2);
      LOGGER.info("contains_key:"+el2.toString());
     
      encoder.delMetadata("time");
      if (LOGGER.isInfoEnabled())
        LOGGER.info(encoder.toString());
     
      final Element el3=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA);
      Assert.assertNotNull(el3);
      LOGGER.info("contains_by_node:"+el3.toString());
     
      final boolean removed=ElementUtils.remove(encoder.getRoot(),el3);
      LOGGER.info("remove:"+removed);
      Assert.assertTrue(removed);
     
      final Element el4=ElementUtils.contains(encoder.getRoot(),GSResourceEncoder.METADATA);
      Assert.assertNull(el4);
      if (el4==null)
        LOGGER.info("REMOVED");
    }
}
TOP

Related Classes of it.geosolutions.geoserver.rest.encoder.coverage.GSCoverageEncoderTest

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.