package dk.dma.ais.abnormal.event.db.csv; import dk.dma.ais.abnormal.event.db.domain.Event; import dk.dma.ais.abnormal.event.db.domain.TrackingPoint; import dk.dma.ais.abnormal.event.db.domain.builders.SuddenSpeedChangeEventBuilder; import org.junit.Test; import java.io.ByteArrayOutputStream; import java.time.LocalDateTime; import static org.junit.Assert.assertEquals; public class CsvEventRepositoryTest { @Test public void save() throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); CsvEventRepository sut = new CsvEventRepository(out, false); Event event = SuddenSpeedChangeEventBuilder.SuddenSpeedChangeEvent() .title("title") .description("description") .state(Event.State.PAST) .startTime(LocalDateTime.of(2017, 1, 22, 10, 0, 0)) .endTime(LocalDateTime.of(2017, 1, 22, 12, 32, 1)) .endTime(null) .behaviour() .isPrimary(true) .vessel() .mmsi(123456789) .imo(123456) .callsign("callsign") .type(1) .toBow(10) .toStern(20) .toPort(30) .toStarboard(40) .name("name") .trackingPoint() .timestamp(LocalDateTime.of(2017, 1, 22, 10, 0, 0)) .positionInterpolated(false) .eventCertainty(TrackingPoint.EventCertainty.RAISED) .speedOverGround(12.0f) .courseOverGround(45f) .trueHeading(46f) .latitude(56.0) .longitude(12.0) .getEvent(); sut.save(event); assertEquals( "eventId,eventType,startTime,endTime,title,description,mmsis,pMmsi,pName,pCallsign,pType,pLength,pLat,pLon,pSog,pCog,pHdg,sMmsi,sName,sCallsign,sType,sLength,sLat,sLon,sSog,sCog,sHdg,filterSuggest\r\n" + "0,SuddenSpeedChangeEvent,2017-01-22T10:00,,title,description,[123456789],123456789,name,callsign,1,30,56.0000,12.0000,12.0,45,46,,,,,,,,,,,\"-start \"\"2017-01-22-09:50\"\" -end \"\"2017-01-22-10:20\"\" -exp \"\"m.pos within circle(56.0000,12.0000,1000)\"\"\"\r\n", out.toString() ); } }