Commit 3500331a authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade tests para comprobar la creación de dto

De este modo, se comprueba que con los datos esperados de ais, null y no
null, se crean correctamente los dto esperados
parent 691dd8c7
Loading
Loading
Loading
Loading
+88 −0
Original line number Diff line number Diff line
package es.redmic.test.vesselscommands.unit.service;

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.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO;
import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil;
import es.redmic.vesselscommands.service.VesselCommandService;
import es.redmic.vesselslib.dto.vessel.VesselDTO;
import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent;

@RunWith(MockitoJUnitRunner.class)
public class CreateVesselFromAis {

	@Test
	public void convertAisToVessel_ReturnVesselDTO_IfAISTrackingDTOIsCorrect() {

		VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2);

		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 = VesselCommandService.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 = VesselCommandService.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());
	}
}
+109 −0
Original line number Diff line number Diff line
package es.redmic.test.vesselscommands.unit.service;

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.InjectMocks;
import org.mockito.junit.MockitoJUnitRunner;

import es.redmic.brokerlib.avro.geodata.tracking.vessels.AISTrackingDTO;
import es.redmic.test.vesselscommands.integration.vessel.VesselDataUtil;
import es.redmic.vesselscommands.service.VesselTrackingCommandService;
import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO;
import es.redmic.vesselslib.dto.vessel.VesselDTO;
import es.redmic.vesselslib.events.vessel.create.VesselCreatedEvent;

@RunWith(MockitoJUnitRunner.class)
public class CreateVesselTrackingFromAis {

	@InjectMocks
	VesselTrackingCommandService service;

	@Test
	public void convertAisToVesselTracking_ReturnVesselTrackingDTO_IfAISTrackingDTOIsCorrect() {

		VesselCreatedEvent vesselCreatedEvent = VesselDataUtil.getVesselCreatedEvent(2);

		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 = service.convertTrackToVesselTracking(dto);

		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.getVesselCreatedEvent(2);

		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 = service.convertTrackToVesselTracking(dto);

		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());
	}
}