package dk.dma.ais.message; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.junit.Test; import dk.dma.ais.binary.SixbitException; import dk.dma.ais.message.binary.AisApplicationMessage; import dk.dma.ais.message.binary.InlandVoyage; import dk.dma.ais.sentence.SentenceException; import dk.dma.ais.sentence.Vdm; public class AisMessage8Test { @Test public void test() throws AisMessageException, SixbitException, SentenceException { Vdm vdm = new Vdm(); vdm.parse("!BSVDM,1,1,,A,8000000Iv1@iH9wRNQB3QicpgvO?VBnrLH>=p7V5?h,4*28"); AisMessage message = AisMessage.getInstance(vdm); assertTrue(message instanceof AisMessage8); assertEquals(8, message.getMsgId()); assertEquals(0, message.getUserId()); } @Test public void inlandVoyagetest() throws AisMessageException, SixbitException, SentenceException { Vdm inlandVdm = new Vdm(); inlandVdm.parse("!AIVDM,1,1,,B,83aDoLPj2StdtMuN=Qb@ggbi00h0,0*7C"); AisMessage message = AisMessage.getInstance(inlandVdm); assertTrue(message instanceof AisMessage8); AisMessage8 message8 = (AisMessage8) message; assertEquals(200, message8.getDac()); assertEquals(10, message8.getFi()); InlandVoyage inlandMessage = (InlandVoyage) AisApplicationMessage.getInstance(message8); assertEquals("2317586", inlandMessage.getVesselId()); assertEquals(850, inlandMessage.getLengthOfShip()); assertEquals(95, inlandMessage.getBeamOfShip()); assertEquals(8022, inlandMessage.getCombinationType()); assertEquals(1, inlandMessage.getHazardousCargo()); assertEquals(0, inlandMessage.getDraught()); assertEquals(1, inlandMessage.getLoadedOrUnloaded()); assertEquals(1, inlandMessage.getQualityOfSpeedData()); assertEquals(0, inlandMessage.getQualityOfCourseData()); assertEquals(0, inlandMessage.getQualityOfHeadingData()); } }