### Question:
AISMessageGen { public static NMEASentence[] msg24B(CacheEntry entry) { Bldr bldr = new Bldr(StaticDataReport, entry.getProperties()) .integer(2, 1) .integer(8, CodesForShipType.class, "shipType", CodesForShipType.NotAvailableDefault) .string(18, "vendorId") .integer(4, "unitModelCode") .integer(20, "serialNumber") .string(42, "callSign"); if (entry.getMMSIType() == MMSIType.CraftAssociatedWithParentShip) { bldr.integer(30, "mothershipMMSI"); } else { bldr.dimensions(); } return bldr.build(); }  static NMEASentence[] msg1(CacheEntry entry); static NMEASentence[] msg1(CacheEntry entry, int second, double latitude, double longitude); static NMEASentence[] msg5(CacheEntry entry); static NMEASentence[] msg8AreaNoticeCircle(
            int mmsi,
            int linkage,
            AreaNoticeDescription notice,
            ZonedDateTime date,
            Duration duration,
            Location location,
            int radius
    ); static NMEASentence[] msg18(CacheEntry entry); static NMEASentence[] msg18(CacheEntry entry, int second, double latitude, double longitude); static NMEASentence[] msg24A(CacheEntry entry); static NMEASentence[] msg24B(CacheEntry entry);  }### Answer:
@Test public void testMsg24B() throws IOException { NMEASentence[] msg24B = AISMessageGen.msg24B(cache.getEntry("230123250")); NMEAParser parser = NMEAParser.newInstance(); TC tc = new TC(); parser.parse(msg24B[0].toString(), null, tc); assertEquals(230123250, tc.mmsi); assertEquals(Sailing, tc.shipType); assertEquals("NVC", tc.vendorid); assertEquals(1, tc.model); assertEquals(35090, tc.serial); assertEquals("OJ3231", tc.callSign); assertEquals(12, tc.dimensionToBow); assertEquals(0, tc.dimensionToStern); assertEquals(4, tc.dimensionToPort); assertEquals(0, tc.dimensionToStarboard); }