package com.bitmonlab.osiris.api.map.assemblers; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import com.bitmonlab.osiris.api.core.map.assemblers.MetaDataAssemblerImpl; import com.bitmonlab.osiris.api.core.map.transferobject.MetaDataDTO; import com.bitmonlab.osiris.commons.map.model.geojson.MetaData; import com.bitmonlab.osiris.core.assembler.AssemblyException; @RunWith(PowerMockRunner.class) @PrepareForTest({MetaDataAssemblerImpl.class}) public class MetaDataAssemblerTest { @InjectMocks private MetaDataAssemblerImpl metaDataAssemblerImpl; @Mock private MetaData metaData; @Mock private MetaDataDTO metaDataDTO; @Test public void transformMetaDataToMetaDataDTO() throws AssemblyException{ String chkSum = "BF46EC8EDC949779798B752A849262A96FE20D5619D294CBB7605E594CDFDB5F3686219B9F56BF7760D2D70EBB62C76569781F0E9A5E8020721465E059398148"; String chkSumRouting = "checksumRouting"; Double minLat = 41.5609602; Double minLon = -8.3979911; Double maxLat = 41.5618352; Double maxLon = -8.3967036; String appId="1"; //Fixture Mockito.when(metaData.getOSMChecksum()).thenReturn(chkSum); Mockito.when(metaData.getRoutingChecksum()).thenReturn(chkSumRouting); Mockito.when(metaData.getMaxlat()).thenReturn(maxLat); Mockito.when(metaData.getMaxlon()).thenReturn(maxLon); Mockito.when(metaData.getMinlat()).thenReturn(minLat); Mockito.when(metaData.getMinlon()).thenReturn(minLon); Mockito.when(metaData.getAppId()).thenReturn(appId); //Experimentation MetaDataDTO metaDataDTOResponse = metaDataAssemblerImpl.createDataTransferObject(metaData); //Expectation assertEquals("OSMCheckSum must be the same", metaDataDTOResponse.getOSMChecksum(), chkSum); assertEquals("RoutingCheckSum must be the same", metaDataDTOResponse.getRoutingChecksum(), chkSumRouting); assertEquals("Max. Latitude must be the same", metaDataDTOResponse.getMaxLatitude(), String.valueOf(maxLat)); assertEquals("Min. Latitude must be the same", metaDataDTOResponse.getMinLatitude(), String.valueOf(minLat)); assertEquals("Max. Longitude must be the same", metaDataDTOResponse.getMaxLongitude(), String.valueOf(maxLon)); assertEquals("Min. Longitude must be the same", metaDataDTOResponse.getMinLongitude(), String.valueOf(minLon)); assertEquals("AppId must be the same", appId, metaDataDTOResponse.getAppId()); } @Test public void transformMetaDataDTOtoMetaData() throws AssemblyException { String chkSum = "BF46EC8EDC949779798B752A849262A96FE20D5619D294CBB7605E594CDFDB5F3686219B9F56BF7760D2D70EBB62C76569781F0E9A5E8020721465E059398148"; String chkSumRouting = "checksumRouting"; String minLat = "41.5609602"; String minLon = "-8.3979911"; String maxLat = "41.5618352"; String maxLon = "-8.3967036"; //Fixture Mockito.when(metaDataDTO.getOSMChecksum()).thenReturn(chkSum); Mockito.when(metaDataDTO.getRoutingChecksum()).thenReturn(chkSumRouting); Mockito.when(metaDataDTO.getMaxLatitude()).thenReturn(maxLat); Mockito.when(metaDataDTO.getMaxLongitude()).thenReturn(maxLon); Mockito.when(metaDataDTO.getMinLongitude()).thenReturn(minLon); Mockito.when(metaDataDTO.getMinLatitude()).thenReturn(minLat); //Experimentation MetaData metaDataResponse = metaDataAssemblerImpl.createDomainObject(metaDataDTO); //Expectation assertEquals("MapCheckSum must be the same", metaDataResponse.getOSMChecksum(), chkSum); assertEquals("RoutingCheckSum must be the same", metaDataResponse.getRoutingChecksum(), chkSumRouting); assertEquals("Max. Latitude must be the same", metaDataResponse.getMaxlat(), Double.valueOf(maxLat)); assertEquals("Min. Latitude must be the same", metaDataResponse.getMinlat(), Double.valueOf(minLat)); assertEquals("Max. Longitude must be the same", metaDataResponse.getMaxlon(), Double.valueOf(maxLon)); assertEquals("Min. Longitude must be the same", metaDataResponse.getMinlon(), Double.valueOf(minLon)); } }