Merge "ConcurrentModificationException: Add test coverage for message, cause."
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ConcurrentModificationExceptionTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ConcurrentModificationExceptionTest.java
index 2bbcd1e..cadb38f 100644
--- a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ConcurrentModificationExceptionTest.java
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/ConcurrentModificationExceptionTest.java
@@ -91,6 +91,23 @@
fail("Failed to throw expected ConcurrentModificationException");
}
+ @SuppressWarnings("ThrowableNotThrown")
+ public void test_messageAndCause() {
+ Throwable cause = new Throwable("cause msg");
+ assertMessageAndCause(null, null, new ConcurrentModificationException());
+ assertMessageAndCause("msg", null, new ConcurrentModificationException("msg"));
+ assertMessageAndCause("msg", cause, new ConcurrentModificationException("msg", cause));
+ assertMessageAndCause("msg", null, new ConcurrentModificationException("msg", null));
+ assertMessageAndCause(null, null, new ConcurrentModificationException((Throwable) null));
+ // cause.toString() is something like "java.lang.Throwable: cause msg"
+ assertMessageAndCause(cause.toString(), cause, new ConcurrentModificationException(cause));
+ }
+
+ private static void assertMessageAndCause(String message, Throwable cause, Exception e) {
+ assertEquals(message, e.getMessage());
+ assertEquals(cause, e.getCause());
+ }
+
/**
* Sets up the fixture, for example, open a network connection. This method
* is called before a test is executed.