Loading vessels-lib/src/main/java/es/redmic/vesselslib/utils/VesselTrackingUtil.java +49 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.utils; import org.geotools.geometry.jts.JTSFactoryFinder; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Point; import es.redmic.exception.databinding.FieldNotValidException; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingPropertiesDTO; public class VesselTrackingUtil { private static final String PREFIX = "vesseltracking-mmsi-tstamp-"; Loading @@ -7,4 +18,42 @@ public class VesselTrackingUtil { public static String generateId(Integer mmsi, Long timeStamp) { return PREFIX + mmsi + "-" + timeStamp; } public static VesselTrackingDTO convertTrackToVesselTracking(AISTrackingDTO aisTracking, String qFlagDefault, String vFlagDefault) { if (aisTracking.getMmsi() == null) throw new FieldNotValidException("mmsi", "null"); if (aisTracking.getTstamp() == null) throw new FieldNotValidException("date", "null"); GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); VesselTrackingDTO vesselTracking = new VesselTrackingDTO(); Point geometry = geometryFactory .createPoint(new Coordinate(aisTracking.getLongitude(), aisTracking.getLatitude())); vesselTracking.setGeometry(geometry); VesselTrackingPropertiesDTO properties = new VesselTrackingPropertiesDTO(); properties.setVessel(VesselUtil.convertTrackToVessel(aisTracking)); properties.setDate(aisTracking.getTstamp()); properties.setCog(aisTracking.getCog()); properties.setSog(aisTracking.getSog()); properties.setHeading(aisTracking.getHeading()); properties.setNavStat(aisTracking.getNavStat()); properties.setDest(aisTracking.getDest()); properties.setEta(aisTracking.getEta()); properties.setQFlag(qFlagDefault); properties.setVFlag(vFlagDefault); vesselTracking.setProperties(properties); return vesselTracking; } } vessels-lib/src/main/java/es/redmic/vesselslib/utils/VesselUtil.java +26 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.utils; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.dto.vesseltype.VesselTypeDTO; public class VesselUtil { private static final String PREFIX = "vessel-mmsi-"; Loading @@ -7,4 +11,26 @@ public class VesselUtil { public static String generateId(Integer mmsi) { return PREFIX + mmsi; } public static VesselDTO convertTrackToVessel(AISTrackingDTO aisTracking) { VesselDTO vessel = new VesselDTO(); vessel.setMmsi(aisTracking.getMmsi()); vessel.setName(aisTracking.getName()); vessel.setCallSign(aisTracking.getCallSign()); vessel.setImo(aisTracking.getImo()); if (aisTracking.getA() != null && aisTracking.getB() != null) vessel.setLength(aisTracking.getA() + aisTracking.getB()); if (aisTracking.getC() != null && aisTracking.getD() != null) vessel.setBeam(aisTracking.getC() + aisTracking.getD()); VesselTypeDTO vesselType = new VesselTypeDTO(); vesselType.setCode(aisTracking.getType().toString()); vessel.setType(vesselType); return vessel; } } vessels-lib/src/test/java/es/redmic/vesselslib/unit/utils/VesselTrackingUtilsTest.java 0 → 100644 +104 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.unit.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; import es.redmic.vesselslib.utils.VesselTrackingUtil; @RunWith(MockitoJUnitRunner.class) public class VesselTrackingUtilsTest { @Test public void convertAisToVesselTracking_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselTrackingDTO result = VesselTrackingUtil.convertTrackToVesselTracking(dto, "0", "N"); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertEquals(result.getProperties().getCog(), dto.getCog()); assertEquals(result.getProperties().getSog(), dto.getSog()); assertEquals(result.getProperties().getHeading(), dto.getHeading()); assertEquals(result.getProperties().getNavStat(), dto.getNavStat()); assertEquals(result.getProperties().getEta(), dto.getEta()); assertEquals(result.getProperties().getDest(), dto.getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(vesselResult.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(vesselResult.getBeam(), beam); } @Test public void convertAisToVesselTrackingWithNullValues_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setName(vessel.getName()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselTrackingDTO result = VesselTrackingUtil.convertTrackToVesselTracking(dto, "0", "N"); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertNull(result.getProperties().getCog()); assertNull(result.getProperties().getSog()); assertNull(result.getProperties().getHeading()); assertNull(result.getProperties().getNavStat()); assertNull(result.getProperties().getEta()); assertNull(result.getProperties().getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); assertNotNull(vesselResult.getType()); assertEquals(vesselResult.getType().getCode(), "0"); assertNull(vesselResult.getImo()); assertNull(vesselResult.getLength()); assertNull(vesselResult.getBeam()); assertNull(vesselResult.getCallSign()); } } vessels-lib/src/test/java/es/redmic/vesselslib/unit/utils/VesselUtilsTest.java 0 → 100644 +87 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.unit.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; import es.redmic.vesselslib.utils.VesselUtil; @RunWith(MockitoJUnitRunner.class) public class VesselUtilsTest { @Test public void convertAisToVessel_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselDTO result = VesselUtil.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(result.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(result.getBeam(), beam); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), dto.getType().toString()); assertEquals(result.getImo(), dto.getImo()); assertEquals(result.getCallSign(), dto.getCallSign()); } @Test public void convertAisToVesselWithNullValues_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { Integer mmsi = 2; String name = "prueba"; AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(mmsi); dto.setName(name); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselDTO result = VesselUtil.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), "0"); assertNull(result.getImo()); assertNull(result.getLength()); assertNull(result.getBeam()); assertNull(result.getCallSign()); } } Loading
vessels-lib/src/main/java/es/redmic/vesselslib/utils/VesselTrackingUtil.java +49 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.utils; import org.geotools.geometry.jts.JTSFactoryFinder; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.GeometryFactory; import com.vividsolutions.jts.geom.Point; import es.redmic.exception.databinding.FieldNotValidException; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingPropertiesDTO; public class VesselTrackingUtil { private static final String PREFIX = "vesseltracking-mmsi-tstamp-"; Loading @@ -7,4 +18,42 @@ public class VesselTrackingUtil { public static String generateId(Integer mmsi, Long timeStamp) { return PREFIX + mmsi + "-" + timeStamp; } public static VesselTrackingDTO convertTrackToVesselTracking(AISTrackingDTO aisTracking, String qFlagDefault, String vFlagDefault) { if (aisTracking.getMmsi() == null) throw new FieldNotValidException("mmsi", "null"); if (aisTracking.getTstamp() == null) throw new FieldNotValidException("date", "null"); GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(); VesselTrackingDTO vesselTracking = new VesselTrackingDTO(); Point geometry = geometryFactory .createPoint(new Coordinate(aisTracking.getLongitude(), aisTracking.getLatitude())); vesselTracking.setGeometry(geometry); VesselTrackingPropertiesDTO properties = new VesselTrackingPropertiesDTO(); properties.setVessel(VesselUtil.convertTrackToVessel(aisTracking)); properties.setDate(aisTracking.getTstamp()); properties.setCog(aisTracking.getCog()); properties.setSog(aisTracking.getSog()); properties.setHeading(aisTracking.getHeading()); properties.setNavStat(aisTracking.getNavStat()); properties.setDest(aisTracking.getDest()); properties.setEta(aisTracking.getEta()); properties.setQFlag(qFlagDefault); properties.setVFlag(vFlagDefault); vesselTracking.setProperties(properties); return vesselTracking; } }
vessels-lib/src/main/java/es/redmic/vesselslib/utils/VesselUtil.java +26 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.utils; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.dto.vesseltype.VesselTypeDTO; public class VesselUtil { private static final String PREFIX = "vessel-mmsi-"; Loading @@ -7,4 +11,26 @@ public class VesselUtil { public static String generateId(Integer mmsi) { return PREFIX + mmsi; } public static VesselDTO convertTrackToVessel(AISTrackingDTO aisTracking) { VesselDTO vessel = new VesselDTO(); vessel.setMmsi(aisTracking.getMmsi()); vessel.setName(aisTracking.getName()); vessel.setCallSign(aisTracking.getCallSign()); vessel.setImo(aisTracking.getImo()); if (aisTracking.getA() != null && aisTracking.getB() != null) vessel.setLength(aisTracking.getA() + aisTracking.getB()); if (aisTracking.getC() != null && aisTracking.getD() != null) vessel.setBeam(aisTracking.getC() + aisTracking.getD()); VesselTypeDTO vesselType = new VesselTypeDTO(); vesselType.setCode(aisTracking.getType().toString()); vessel.setType(vesselType); return vessel; } }
vessels-lib/src/test/java/es/redmic/vesselslib/unit/utils/VesselTrackingUtilsTest.java 0 → 100644 +104 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.unit.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; import es.redmic.vesselslib.utils.VesselTrackingUtil; @RunWith(MockitoJUnitRunner.class) public class VesselTrackingUtilsTest { @Test public void convertAisToVesselTracking_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselTrackingDTO result = VesselTrackingUtil.convertTrackToVesselTracking(dto, "0", "N"); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertEquals(result.getProperties().getCog(), dto.getCog()); assertEquals(result.getProperties().getSog(), dto.getSog()); assertEquals(result.getProperties().getHeading(), dto.getHeading()); assertEquals(result.getProperties().getNavStat(), dto.getNavStat()); assertEquals(result.getProperties().getEta(), dto.getEta()); assertEquals(result.getProperties().getDest(), dto.getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(vesselResult.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(vesselResult.getBeam(), beam); } @Test public void convertAisToVesselTrackingWithNullValues_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setName(vessel.getName()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselTrackingDTO result = VesselTrackingUtil.convertTrackToVesselTracking(dto, "0", "N"); assertTrue(result.getProperties().getDate().isEqual(dto.getTstamp())); assertNull(result.getProperties().getCog()); assertNull(result.getProperties().getSog()); assertNull(result.getProperties().getHeading()); assertNull(result.getProperties().getNavStat()); assertNull(result.getProperties().getEta()); assertNull(result.getProperties().getDest()); VesselDTO vesselResult = result.getProperties().getVessel(); assertEquals(vesselResult.getMmsi(), dto.getMmsi()); assertEquals(vesselResult.getName(), dto.getName()); assertNotNull(vesselResult.getType()); assertEquals(vesselResult.getType().getCode(), "0"); assertNull(vesselResult.getImo()); assertNull(vesselResult.getLength()); assertNull(vesselResult.getBeam()); assertNull(vesselResult.getCallSign()); } }
vessels-lib/src/test/java/es/redmic/vesselslib/unit/utils/VesselUtilsTest.java 0 → 100644 +87 −0 Original line number Diff line number Diff line package es.redmic.vesselslib.unit.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import org.joda.time.DateTime; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import es.redmic.vesselslib.dto.ais.AISTrackingDTO; import es.redmic.vesselslib.dto.vessel.VesselDTO; import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent; import es.redmic.vesselslib.utils.VesselUtil; @RunWith(MockitoJUnitRunner.class) public class VesselUtilsTest { @Test public void convertAisToVessel_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getCreatedEvent(); VesselDTO vessel = vesselCreatedEvent.getVessel(); AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(vessel.getMmsi()); dto.setImo(vessel.getImo()); dto.setName(vessel.getName()); dto.setType(Integer.parseInt(vessel.getType().getCode())); dto.setCallSign(vessel.getCallSign()); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); dto.setA(vessel.getLength() / 2); dto.setB(vessel.getLength() / 2); dto.setC(vessel.getBeam() / 2); dto.setD(vessel.getBeam() / 2); dto.setCog(2.3); dto.setSog(3.4); dto.setHeading(221); dto.setNavStat(33); dto.setEta("00:00 00:00"); dto.setDest("Santa Cruz de Tenerife"); VesselDTO result = VesselUtil.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); Double length = dto.getA() + dto.getB(); assertEquals(result.getLength(), length); Double beam = dto.getC() + dto.getD(); assertEquals(result.getBeam(), beam); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), dto.getType().toString()); assertEquals(result.getImo(), dto.getImo()); assertEquals(result.getCallSign(), dto.getCallSign()); } @Test public void convertAisToVesselWithNullValues_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() { Integer mmsi = 2; String name = "prueba"; AISTrackingDTO dto = new AISTrackingDTO(); dto.setMmsi(mmsi); dto.setName(name); dto.setTstamp(new DateTime()); dto.setLatitude(2.1); dto.setLongitude(3.2); VesselDTO result = VesselUtil.convertTrackToVessel(dto); assertEquals(result.getMmsi(), dto.getMmsi()); assertEquals(result.getName(), dto.getName()); assertNotNull(result.getType()); assertEquals(result.getType().getCode(), "0"); assertNull(result.getImo()); assertNull(result.getLength()); assertNull(result.getBeam()); assertNull(result.getCallSign()); } }