Package org.geomajas.command.geometry

Source Code of org.geomajas.command.geometry.TransformGeometryCommandTest

package org.geomajas.command.geometry;

import com.vividsolutions.jts.geom.Envelope;
import com.vividsolutions.jts.io.WKTReader;
import org.geomajas.command.CommandDispatcher;
import org.geomajas.command.dto.TransformGeometryRequest;
import org.geomajas.command.dto.TransformGeometryResponse;
import org.geomajas.geometry.Bbox;
import org.geomajas.geometry.Geometry;
import org.geomajas.service.DtoConverterService;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/org/geomajas/spring/geomajasContext.xml",
    "/org/geomajas/testdata/layerCountries.xml", "/org/geomajas/testdata/simplevectorsContext.xml"})
public class TransformGeometryCommandTest {

  @Autowired
  private CommandDispatcher dispatcher;

  @Autowired
  private DtoConverterService converterService;

  private static final String MERCATOR = "EPSG:900913";

  private static final String LONLAT = "EPSG:4326";

  private static final double DELTA = 1e-20;

  @Test
  public void testTransformBounds() throws Exception {
    TransformGeometryRequest request = new TransformGeometryRequest();
    Bbox origin = new Bbox(10, 30, 10, 10);
    request.setBounds(origin);
    request.setSourceCrs(MERCATOR);
    request.setTargetCrs(LONLAT);
    // execute
    TransformGeometryResponse response = (TransformGeometryResponse) dispatcher.execute(
        TransformGeometryRequest.COMMAND, request, null, "en");
    Bbox transformed = response.getBounds();
    Assert.assertEquals(8.983152841195215E-5, transformed.getX(), DELTA);
    Assert.assertEquals(2.6949458522981454E-4, transformed.getY(), DELTA);
    Assert.assertEquals(1.796630568239043E-4, transformed.getMaxX(), DELTA);
    Assert.assertEquals(3.593261136397527E-4, transformed.getMaxY(), DELTA);
  }

  @Test
  public void testTransformGeometry() throws Exception {
    TransformGeometryRequest request = new TransformGeometryRequest();
    WKTReader reader = new WKTReader();
    Geometry origin = converterService.toDto(reader.read("POLYGON((10 30, 20 30,20 40,10 40,10 30))"));
    request.setGeometry(origin);
    request.setSourceCrs(MERCATOR);
    request.setTargetCrs(LONLAT);
    // execute
    TransformGeometryResponse response = (TransformGeometryResponse) dispatcher.execute(
        TransformGeometryRequest.COMMAND, request, null, "en");
    Geometry transformed = response.getGeometry();
    Envelope bounds = converterService.toInternal(transformed).getEnvelopeInternal();
    Assert.assertEquals(8.983152841195215E-5, bounds.getMinX(), DELTA);
    Assert.assertEquals(2.6949458522981454E-4, bounds.getMinY(), DELTA);
    Assert.assertEquals(1.796630568239043E-4, bounds.getMaxX(), DELTA);
    Assert.assertEquals(3.593261136397527E-4, bounds.getMaxY(), DELTA);
  }

  @Test
  public void testTransformGeometryCollection() throws Exception {
    TransformGeometryRequest request = new TransformGeometryRequest();
    WKTReader reader = new WKTReader();
    Geometry origin = converterService.toDto(reader.read("POLYGON((10 30, 20 30,20 40,10 40,10 30))"));
    List<Geometry> geometries = request.getGeometryCollection(); // assure not-null
    geometries.add(origin);
    request.setGeometryCollection(geometries); // assure setter is called/tested
    request.setSourceCrs(MERCATOR);
    request.setTargetCrs(LONLAT);
    // execute
    TransformGeometryResponse response = (TransformGeometryResponse) dispatcher.execute(
        TransformGeometryRequest.COMMAND, request, null, "en");
    List<Geometry> transformed = response.getGeometryCollection();
    Assert.assertEquals(1, transformed.size());
    Envelope bounds = converterService.toInternal(transformed.get(0)).getEnvelopeInternal();
    Assert.assertEquals(8.983152841195215E-5, bounds.getMinX(), DELTA);
    Assert.assertEquals(2.6949458522981454E-4, bounds.getMinY(), DELTA);
    Assert.assertEquals(1.796630568239043E-4, bounds.getMaxX(), DELTA);
    Assert.assertEquals(3.593261136397527E-4, bounds.getMaxY(), DELTA);
  }
}
TOP

Related Classes of org.geomajas.command.geometry.TransformGeometryCommandTest

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.