### Question:
AisPositionA implements AisPosition, HasCommunications { @Override public String getSource() { return source; } AisPositionA(String message, String source, int padBits);  AisPositionA(String message, int padBits);  AisPositionA(AisExtractorFactory factory, String message, String source, int padBits); @Override int getMessageId(); @Override int getRepeatIndicator(); @Override int getMmsi(); NavigationalStatus getNavigationalStatus(); Integer getRateOfTurn(); @Override Double getSpeedOverGroundKnots(); @Override boolean isHighAccuracyPosition(); @Override Double getLongitude(); @Override Double getLatitude(); @Override Double getCourseOverGround(); @Override Integer getTrueHeading(); @Override int getTimeSecondsOnly(); int getSpecialManoeuvreIndicator(); int getSpare(); @Override boolean isUsingRAIM(); @Override Communications getCommunications(); @Override String getSource(); @Override String toString();  }### Answer:
@Test public void testConstructorWithMessageAndSource() { String m = "15MgK45P3@G?fl0E`JbR0OwT0@MS"; AisPositionA p = new AisPositionA(m, "boo", 0); assertEquals("boo", p.getSource()); }