package service; import api.v1.*; import org.junit.Test; import util.InMemoryDbTest; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertNull; public class CoordinateConversionServiceTest extends InMemoryDbTest { @Test public void testConvertDecimal(){ Position p = new Position(); p.dec = new PositionDecimalDegrees(); p.dec.setLatitude(55.0); p.dec.setLongitude(3.0); p.coordinateFormat = CoordinateFormat.DECIMAL_DEGREES; CoordinateConversionService service = new CoordinateConversionService(fakeUser); assertNull("dms null", p.dms); assertNull("utm null", p.utm); Position p2 = service.convertCoordinates(p); assertNotNull("dms not null", p2.dms); assertNotNull("dms.latDeg not null", p2.dms.latDeg); assertNotNull("dms.latMin not null", p2.dms.latMin); assertNotNull("dms.latSec not null", p2.dms.latSec); assertNotNull("dms.longDeg not null", p2.dms.longDeg); assertNotNull("dms.longMin not null", p2.dms.longMin); assertNotNull("dms.longSec not null", p2.dms.longSec); assertEquals("latDeg",55, p2.dms.latDeg.intValue()); assertEquals("latMin",0, p2.dms.latMin.intValue()); assertEquals("latSec",0.0, p2.dms.latSec,0.01); assertEquals("longDeg", 3, p2.dms.longDeg.intValue()); assertEquals("longMin", 0, p2.dms.longMin.intValue()); assertEquals("longSec", 0.0, p2.dms.longSec,0.01); assertNotNull("utm not null", p2.utm); assertEquals("utm","31 U 500000 6094791",p2.utm.toString()); } @Test public void testConvertDMS(){ Position p = new Position(); p.dms = new PositionDMS(); p.dms.latDeg = 55; p.dms.latMin = 0; p.dms.latSec = 0; p.dms.latDirection = "N"; p.dms.longDeg = 3; p.dms.longMin = 0; p.dms.longSec = 0; p.dms.longDirection = "E"; p.coordinateFormat = CoordinateFormat.DEGREES_MINUTES_SECONDS; CoordinateConversionService service = new CoordinateConversionService(fakeUser); assertNull("dec null", p.dec); assertNull("utm null", p.utm); Position p2 = service.convertCoordinates(p); assertNotNull("dec not null", p2.dec); assertNotNull(p2.dms.latDeg); assertNotNull(p2.dms.latMin); assertNotNull(p2.dms.latSec); assertNotNull(p2.dms.longDeg); assertNotNull(p2.dms.longMin); assertNotNull(p2.dms.longSec); assertEquals("latDeg",55, p2.dms.latDeg.intValue()); assertEquals("latMin", 0, p2.dms.latMin.intValue()); assertEquals("latSec",0 , p2.dms.latSec.intValue()); assertEquals("longDeg", 3, p2.dms.longDeg.intValue()); assertEquals("longMin", 0, p2.dms.longMin.intValue()); assertEquals("longSec", 0.0, p2.dms.longSec,0.01); assertNotNull("utm not null", p2.utm); assertNotNull("utm zone not null", p2.utm.zone); assertNotNull("utm band not null", p2.utm.band); assertNotNull("utm easting not null", p2.utm.easting); assertNotNull("utm northing not null", p2.utm.northing); assertEquals("zone","31",p2.utm.zone); assertEquals("band","U",p2.utm.band); assertEquals("easting",500000,p2.utm.easting.intValue()); assertEquals("northing",6094791,p2.utm.northing.intValue()); assertEquals("utm","31 U 500000 6094791",p2.utm.toString()); } @Test public void testConvertUTM(){ Position p = new Position(); p.utm = new PositionUTM(); p.utm.zone = "31"; p.utm.band = "U"; p.utm.easting = 500000; p.utm.northing = 6094792; p.coordinateFormat = CoordinateFormat.UTM; CoordinateConversionService service = new CoordinateConversionService(fakeUser); assertNull("dec null", p.dec); assertNull("dms null", p.dms); Position p2 = service.convertCoordinates(p); assertNotNull("dec not null", p2.dec); assertNotNull("dec.latitude null", p2.dec.getLatitude()); assertNotNull("dec.longitude null", p2.dec.getLongitude()); assertEquals("dec.longitude",55.0,p2.dec.getLatitude(),0.0001); assertEquals("dec.latitude",3.0,p2.dec.getLongitude(),0.0001); assertNotNull(p2.dms.latDeg); assertNotNull(p2.dms.latMin); assertNotNull(p2.dms.latSec); assertNotNull(p2.dms.longDeg); assertNotNull(p2.dms.longMin); assertNotNull(p2.dms.longSec); assertEquals("latDeg",55, p2.dms.latDeg.intValue()); assertEquals("latMin", 0, p2.dms.latMin.intValue()); assertEquals("latSec",0, p2.dms.latSec.intValue()); assertEquals("longDeg", 3, p2.dms.longDeg.intValue()); assertEquals("longMin", 0, p2.dms.longMin.intValue()); assertEquals("longSec", 0, p2.dms.longSec.intValue()); assertNotNull("utm not null", p2.utm); assertNotNull("utm zone not null", p2.utm.zone); assertNotNull("utm band not null", p2.utm.band); assertNotNull("utm easting not null", p2.utm.easting); assertNotNull("utm northing not null", p2.utm.northing); assertEquals("zone","31",p2.utm.zone); assertEquals("band","U",p2.utm.band); assertEquals("easting",500000,p2.utm.easting.intValue()); assertEquals("northing",6094792,p2.utm.northing.intValue()); assertEquals("utm","31 U 500000 6094792",p2.utm.toString()); } }