### Question:
BASE1Header extends BaseHeader { public void setDestination(String dest) { byte[] d = ISOUtil.str2bcd(dest, true); System.arraycopy(d, 0, header, 5, 3); } BASE1Header();  BASE1Header(String source, String destination);  BASE1Header(String source, String destination, int format);  BASE1Header(byte[] header); int getHLen(); void setHFormat(int hformat); int getFormat(); void setRtCtl(int i); void setFlags(int i); void setStatus(int i); void setBatchNumber(int i); void setFormat(int format); void setLen(int len); void setDestination(String dest); void setSource(String src); String getSource(); String getDestination(); void swapDirection(); boolean isRejected(); String getRejectCode(); String formatHeader(); static final int LENGTH; }### Answer:
@Test public void testSetDestination() throws Throwable { BASE1Header bASE1Header = new BASE1Header(); byte[] header = new byte[8]; bASE1Header.unpack(header); bASE1Header.setDestination("testBASE1HeaderDest"); assertFalse(Arrays.equals(header, bASE1Header.header), "bASE1Header.header"); }
@Test public void testSetDestinationThrowsArrayIndexOutOfBoundsException() throws Throwable { try { new BASE1Header().setDestination(""); fail("Expected ArrayIndexOutOfBoundsException to be thrown"); } catch (ArrayIndexOutOfBoundsException ex) { if (isJavaVersionAtMost(JAVA_10)) { assertNull(ex.getMessage(), "ex.getMessage()"); } else { assertEquals("arraycopy: last source index 3 out of bounds for byte[0]", ex.getMessage(), "ex.getMessage()"); } } }
@Test public void testSetDestinationThrowsNullPointerException() throws Throwable { try { new BASE1Header().setDestination(null); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { if (isJavaVersionAtMost(JAVA_14)) { assertNull(ex.getMessage(), "ex.getMessage()"); } else { assertEquals("Cannot invoke \"String.length()\" because \"s\" is null", ex.getMessage(), "ex.getMessage()"); } } }