/** Tests {@link MiscUtils#deepMapCopy(Map)}. */
  @Test
  public void testDeepCopyMap() {
    Map<String, CloneableCopy> map = new HashMap<String, CloneableCopy>();
    CloneableCopy elm1 = new CloneableCopy("elm1");
    CloneableCopy elm2 = new CloneableCopy("elm2");
    CloneableCopy elm3 = null;
    String key1 = "elm1";
    String key2 = "elm2";
    String key3 = null;
    map.put(key1, elm1);
    map.put(key2, elm2);
    map.put(key3, elm3);

    Map<String, CloneableCopy> copy = MiscUtils.deepMapCopy(map);
    assertNotNull(copy);
    assertNotSame(map, copy);
    assertEquals(map, copy);
    assertNotSame(map.get(key1), copy.get(key1));
    assertNotSame(map.get(key2), copy.get(key2));
  }