@Test (timeout = 30000)
public void testUnescapeString() throws Exception {

  assertEquals(NULL_STR, StringUtils.unEscapeString(NULL_STR));
  assertEquals(EMPTY_STR, StringUtils.unEscapeString(EMPTY_STR));
  assertEquals(STR_WO_SPECIAL_CHARS,
      StringUtils.unEscapeString(STR_WO_SPECIAL_CHARS));
  try {
    StringUtils.unEscapeString(STR_WITH_COMMA);
    fail("Should throw IllegalArgumentException");
  } catch (IllegalArgumentException e) {
    // expected
  }
  assertEquals(STR_WITH_COMMA,
      StringUtils.unEscapeString(ESCAPED_STR_WITH_COMMA));
  try {
    StringUtils.unEscapeString(STR_WITH_ESCAPE);
    fail("Should throw IllegalArgumentException");
  } catch (IllegalArgumentException e) {
    // expected
  }
  assertEquals(STR_WITH_ESCAPE,
      StringUtils.unEscapeString(ESCAPED_STR_WITH_ESCAPE));
  try {
    StringUtils.unEscapeString(STR_WITH_BOTH2);
    fail("Should throw IllegalArgumentException");
  } catch (IllegalArgumentException e) {
    // expected
  }
  assertEquals(STR_WITH_BOTH2,
      StringUtils.unEscapeString(ESCAPED_STR_WITH_BOTH2));
}