Commit 0a94a96c authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade mapper de model a dto + tests

parent d5e89a76
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
package es.redmic.vesselsview.mapper.vesseltracking;

import org.springframework.stereotype.Component;

import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO;
import es.redmic.vesselsview.model.vesseltracking.VesselTracking;
import ma.glasnost.orika.CustomMapper;

@Component
public class VesselTrackingESMapper extends CustomMapper<VesselTracking, VesselTrackingDTO> {

}
 No newline at end of file
+6 −0
Original line number Diff line number Diff line
package es.redmic.vesselsview.mapper.vesseltracking;

/*-@Component
public class VesselTrackingPropertiesESMapper
		extends CustomMapper<VesselTrackingProperties, VesselTrackingPropertiesDTO> {
}-*/
+92 −0
Original line number Diff line number Diff line
package es.redmic.test.vesselsview.unit.mapper;

import java.io.IOException;

import org.json.JSONException;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.junit.MockitoJUnitRunner;
import org.skyscreamer.jsonassert.JSONAssert;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonMappingException;

import es.redmic.models.es.common.dto.JSONCollectionDTO;
import es.redmic.models.es.data.common.model.DataSearchWrapper;
import es.redmic.testutils.utils.JsonToBeanTestUtil;
import es.redmic.vesselslib.dto.tracking.VesselTrackingDTO;
import es.redmic.vesselsview.config.MapperScanBean;
import es.redmic.vesselsview.mapper.vesseltracking.VesselTrackingESMapper;
import es.redmic.vesselsview.mapper.vesseltype.VesselTypeESMapper;
import es.redmic.vesselsview.model.vesseltracking.VesselTracking;
import es.redmic.viewlib.common.mapper.es2dto.DataCollectionESMapper;
import es.redmic.viewlib.common.mapper.es2dto.DataItemESMapper;

@RunWith(MockitoJUnitRunner.class)
public class VesselTrackingMapperTest {

	@InjectMocks
	VesselTrackingESMapper mapper;

	@InjectMocks
	DataCollectionESMapper dataCollectionMapper;

	@InjectMocks
	DataItemESMapper dataItemMapper;

	@InjectMocks
	VesselTypeESMapper vesselTypeESMapper;

	protected MapperScanBean factory = new MapperScanBean().build();

	// @formatter:off

	String modelPath = "/data/model/vesseltracking/vesselTracking.json",
			dtoToSavePath = "/data/dto/vesseltracking/vesselTracking.json",
			searchWrapperPath = "/data/model/vesseltracking/searchWrapperVesselTrackingESModel.json",
			searchDTOPath = "/data/dto/vesseltracking/searchWrapperVesselTrackingDTO.json";

	// @formatter:on

	@Before
	public void setupTest() throws IOException {

		factory.addMapper(mapper);
		factory.addMapper(dataCollectionMapper);
		factory.addMapper(dataItemMapper);
	}

	@Test
	public void mapperDtoToModel() throws JsonParseException, JsonMappingException, IOException, JSONException {

		VesselTrackingDTO dtoIn = (VesselTrackingDTO) JsonToBeanTestUtil.getBean(dtoToSavePath,
				VesselTrackingDTO.class);

		VesselTracking modelOut = factory.getMapperFacade().map(dtoIn, VesselTracking.class);

		String modelStringExpected = JsonToBeanTestUtil.getJsonString(modelPath);
		String modelString = JsonToBeanTestUtil.writeValueAsString(modelOut);

		JSONAssert.assertEquals(modelStringExpected, modelString, false);
	}

	@Test
	public void mapperSearchWrapperToDto() throws JsonParseException, JsonMappingException, IOException, JSONException {

		JavaType type = JsonToBeanTestUtil.getParametizedType(DataSearchWrapper.class, VesselTracking.class);

		DataSearchWrapper<?> searchWrapperModel = (DataSearchWrapper<?>) JsonToBeanTestUtil.getBean(searchWrapperPath,
				type);
		String expected = JsonToBeanTestUtil.getJsonString(searchDTOPath);

		JSONCollectionDTO searchDTO = factory.getMapperFacade().map(searchWrapperModel.getHits(),
				JSONCollectionDTO.class);

		String searchDTOString = JsonToBeanTestUtil.writeValueAsString(searchDTO);

		JSONAssert.assertEquals(expected, searchDTOString, false);
	}
}
 No newline at end of file
+54 −0
Original line number Diff line number Diff line
{
	"total": 1,
	"_meta": {
		"max_score": null
	},
	"_aggs": {
		
	},
	"data": [
		{
			"_meta": {
				"score": 1.0,
				"version": 1,
				"highlight": null
			},
			"id": "vesseltracking-mmsi-tstamp-247039300-34342329243244232",
			"uuid": "sdsd323sdds_3ed",
			"type": "Feature",
			"geometry": {
				"type": "Point",
				"coordinates": [-16.35215172, 28.35351045]
			},
			"properties": {
				"activity": "r.1.8.22",
				"vessel": {
					"id": "d5673b99-f3d1-444d-aa47-d821aaebc11e",
					"mmsi": 247039300,
					"imo": 9227912,
					"type": {
						"id": "a5673b99-f3d1-444d-aa47-d821aaebc11e",
						"code": "70",
						"name": "Cargo, all ships of this type",
						"name_en": "Cargo, all ships of this type"
					},
					"name": "GRANDE ITALIA",
					"callSign": "IBTF",
					"beam": 33.5,
					"length": 300.3,
					"updated": "2017-05-23T12:35:12.052+00:00",
					"inserted": "2017-05-23T12:35:12.052+00:00"
				},
				"date": "2017-05-23T11:35:12.052+00:00",
				"updated": "2017-05-23T11:37:12.052+00:00",
				"inserted": "2017-05-23T11:37:12.052+00:00",
				"cog": 23.3,
				"sog": 23.3,
				"heading": 12,
				"navStat": 33,
				"dest": "Santa Cruz de Tenerife",
				"eta": "00:00 00:00"
			}
		}
	]
}
 No newline at end of file
+38 −0
Original line number Diff line number Diff line
{
	"id": "vesseltracking-mmsi-tstamp-247039300-34342329243244232",
	"uuid": "sdsd323sdds_3ed",
	"type": "Feature",
	"geometry": {
		"type": "Point",
		"coordinates": [-16.35215172, 28.35351045]
	},
	"properties": {
		"activity": "r.1.8.22",
		"vessel": {
			"id": "d5673b99-f3d1-444d-aa47-d821aaebc11e",
			"mmsi": 247039300,
			"imo": 9227912,
			"type": {
				"id": "a5673b99-f3d1-444d-aa47-d821aaebc11e",
				"code": "70",
				"name": "Cargo, all ships of this type",
				"name_en": "Cargo, all ships of this type"
			},
			"name": "GRANDE ITALIA",
			"callSign": "IBTF",
			"beam": 33.5,
			"length": 300.3,
			"updated": "2017-05-23T12:35:12.052+00:00",
			"inserted": "2017-05-23T12:35:12.052+00:00"
		},
		"date": "2017-05-23T11:35:12.052+00:00",
		"updated": "2017-05-23T11:37:12.052+00:00",
		"inserted": "2017-05-23T11:37:12.052+00:00",
		"cog": 23.3,
		"sog": 23.3,
		"heading": 12,
		"navStat": 33,
		"dest": "Santa Cruz de Tenerife",
		"eta": "00:00 00:00"
	}
}
 No newline at end of file
Loading