### Question:
FSDMsg implements Loggeable, Cloneable { public void copy (String fieldName, FSDMsg msg) { fields.put (fieldName, msg.get (fieldName)); } FSDMsg(String basePath);  FSDMsg(String basePath, String baseSchema); String getBasePath(); String getBaseSchema(); void setCharset(Charset charset); void setSeparator(String separatorName, char separator); void unsetSeparator(String separatorName); void unpack(InputStream is); void unpack(byte[] b); String pack(); byte[] packToBytes(); boolean isSeparator(byte b); void set(String name, String value); void setHeader(byte[] h); byte[] getHeader(); String getHexHeader(); String get(String fieldName); String get(String fieldName, String def); void copy(String fieldName, FSDMsg msg); void copy(String fieldName, FSDMsg msg, String def); byte[] getHexBytes(String name); @SuppressWarnings("PMD.EmptyCatchBlock") int getInt(String name); @SuppressWarnings("PMD.EmptyCatchBlock") int getInt(String name, int def); Element toXML(); Map getMap(); void setMap(Map fields); @Override void dump(PrintStream p, String indent); boolean hasField(String fieldName); @Override Object clone(); void merge(FSDMsg m); @Override boolean equals(Object o); @Override int hashCode(); static char FS; static char US; static char GS; static char RS; static char EOF; static char PIPE; static char EOM; }### Answer:
@Test public void testCopy() throws Throwable { FSDMsg msg = new FSDMsg("testFSDMsgBasePath"); msg.copy("testFSDMsgFieldName", msg); assertEquals(1, msg.fields.size(), "msg.fields.size()"); assertNull(msg.fields.get("testFSDMsgFieldName"), "msg.fields.get(\"testFSDMsgFieldName\")"); }
@Test public void testCopyThrowsNullPointerException() throws Throwable { FSDMsg fSDMsg = new FSDMsg("testFSDMsgBasePath", "testFSDMsgBaseSchema"); try { fSDMsg.copy("testFSDMsgFieldName", null); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { if (isJavaVersionAtMost(JAVA_14)) { assertNull(ex.getMessage(), "ex.getMessage()"); } else { assertEquals("Cannot invoke \"org.jpos.util.FSDMsg.get(String)\" because \"msg\" is null", ex.getMessage(), "ex.getMessage()"); } assertEquals(0, fSDMsg.fields.size(), "fSDMsg.fields.size()"); } }