### Question:
AisBaseStation implements AisMessage, HasMmsi { @Override public int getMessageId() { return messageId; } AisBaseStation(String message, int padBits);  AisBaseStation(String message, String source, int padBits);  AisBaseStation(AisExtractorFactory factory, String message, String source, int padBits); @Override int getMessageId(); int getRepeatIndicator(); @Override int getMmsi(); int getYear(); int getMonth(); int getDay(); int getHour(); int getMinute(); int getSecond(); int getPositionAccuracy(); long getTimestamp(); double getLatitude(); double getLongitude(); int getDeviceType(); @Override String getSource(); @Override String toString();  }### Answer:
@Test public void testIncorrectMessageId() { AisExtractorFactory factory = createMock(AisExtractorFactory.class); AisExtractor ex = createMock(AisExtractor.class); String message = ""; expect(factory.create(message, AisBaseStation.MIN_LENGTH, 0)).andReturn(ex).once(); expect(ex.getSignedValue(107, 134)).andReturn(0).anyTimes(); expect(ex.getSignedValue(79, 107)).andReturn(0).anyTimes(); expect(ex.getMessageId()).andReturn(0).atLeastOnce(); replay(factory, ex); try { new AisBaseStation(factory, "", "", 0); fail(); } catch (AisParseException e) { } verify(factory); }