aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorJoerg Schaible <joehni@apache.org>2010-03-15 17:11:55 +0000
committerJoerg Schaible <joehni@apache.org>2010-03-15 17:11:55 +0000
commit022d08cfd31475073c664da109ad50bfe9539d82 (patch)
treeb6e845b1c2e83e5f5f05388eca6922af655ee987 /src/test/java
parent4d7a616ccaf6c4a2aef171999f04c71d3749313d (diff)
downloadapache-commons-lang-022d08cfd31475073c664da109ad50bfe9539d82.tar.gz
Fix DefaultExceptionContext.addValue that overwrites information in a recursive situation (LANG-605). Allow explicit replacement of a label with the new replaceValue methods.
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/lang/trunk@923341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/apache/commons/lang3/exception/ContextedExceptionTest.java49
-rw-r--r--src/test/java/org/apache/commons/lang3/exception/ContextedRuntimeExceptionTest.java50
-rw-r--r--src/test/java/org/apache/commons/lang3/exception/DefaultExceptionContextTest.java27
3 files changed, 86 insertions, 40 deletions
diff --git a/src/test/java/org/apache/commons/lang3/exception/ContextedExceptionTest.java b/src/test/java/org/apache/commons/lang3/exception/ContextedExceptionTest.java
index e1a851b7f..b2b1b91b5 100644
--- a/src/test/java/org/apache/commons/lang3/exception/ContextedExceptionTest.java
+++ b/src/test/java/org/apache/commons/lang3/exception/ContextedExceptionTest.java
@@ -26,7 +26,7 @@ import org.apache.commons.lang3.StringUtils;
/**
* JUnit tests for ContextedException.
* @author D. Ashmore
- *
+ * @author Apache Software Foundation
*/
public class ContextedExceptionTest extends TestCase {
@@ -34,10 +34,6 @@ public class ContextedExceptionTest extends TestCase {
private static final String TEST_MESSAGE = "Test Message";
private ContextedException contextedException;
- public ContextedExceptionTest(String name) {
- super(name);
- }
-
public void testContextedException() {
contextedException = new ContextedException();
String message = contextedException.getMessage();
@@ -88,8 +84,7 @@ public class ContextedExceptionTest extends TestCase {
.addValue("test1", null)
.addValue("test2", "some value")
.addValue("test Date", new Date())
- .addValue("test Nbr", new Integer(5))
- .addValue("test Poorly written obj", new ObjectWithFaultyToString());
+ .addValue("test Nbr", new Integer(5));
String message = contextedException.getMessage();
assertTrue(message.indexOf(TEST_MESSAGE)>=0);
@@ -97,27 +92,49 @@ public class ContextedExceptionTest extends TestCase {
assertTrue(message.indexOf("test2")>=0);
assertTrue(message.indexOf("test Date")>=0);
assertTrue(message.indexOf("test Nbr")>=0);
- assertTrue(message.indexOf("test Poorly written obj")>=0);
assertTrue(message.indexOf("some value")>=0);
assertTrue(message.indexOf("5")>=0);
- assertTrue(message.indexOf("Crap")>=0);
assertTrue(contextedException.getValue("test1") == null);
assertTrue(contextedException.getValue("test2").equals("some value"));
- assertTrue(contextedException.getValue("crap") == null);
- assertTrue(contextedException.getValue("test Poorly written obj") instanceof ObjectWithFaultyToString);
- assertTrue(contextedException.getLabelSet().size() == 5);
+ assertTrue(contextedException.getLabelSet().size() == 4);
assertTrue(contextedException.getLabelSet().contains("test1"));
assertTrue(contextedException.getLabelSet().contains("test2"));
assertTrue(contextedException.getLabelSet().contains("test Date"));
assertTrue(contextedException.getLabelSet().contains("test Nbr"));
+
+ contextedException.addValue("test2", "different value");
+ assertTrue(contextedException.getLabelSet().size() == 5);
+ assertTrue(contextedException.getLabelSet().contains("test2"));
+ assertTrue(contextedException.getLabelSet().contains("test2[1]"));
+
+ String contextMessage = contextedException.getFormattedExceptionMessage(null);
+ assertTrue(contextMessage.indexOf(TEST_MESSAGE) == -1);
+ assertTrue(contextedException.getMessage().endsWith(contextMessage));
+ }
+
+ public void testReplaceValue() {
+ contextedException = new ContextedException(new Exception(TEST_MESSAGE))
+ .addValue("test Poorly written obj", new ObjectWithFaultyToString());
+
+ String message = contextedException.getMessage();
+ assertTrue(message.indexOf(TEST_MESSAGE)>=0);
+ assertTrue(message.indexOf("test Poorly written obj")>=0);
+ assertTrue(message.indexOf("Crap")>=0);
+
+ assertTrue(contextedException.getValue("crap") == null);
+ assertTrue(contextedException.getValue("test Poorly written obj") instanceof ObjectWithFaultyToString);
+
+ assertTrue(contextedException.getLabelSet().size() == 1);
assertTrue(contextedException.getLabelSet().contains("test Poorly written obj"));
assertTrue(!contextedException.getLabelSet().contains("crap"));
- contextedException.addValue("test Poorly written obj", "replacement");
-
+ contextedException.replaceValue("test Poorly written obj", "replacement");
+
+ assertTrue(contextedException.getLabelSet().size() == 1);
+
String contextMessage = contextedException.getFormattedExceptionMessage(null);
assertTrue(contextMessage.indexOf(TEST_MESSAGE) == -1);
assertTrue(contextedException.getMessage().endsWith(contextMessage));
@@ -134,10 +151,6 @@ public class ContextedExceptionTest extends TestCase {
String message = contextedException.getMessage();
assertTrue(message != null);
}
-
- public void testGetMessage() {
- testAddValue();
- }
static class ObjectWithFaultyToString implements Serializable {
diff --git a/src/test/java/org/apache/commons/lang3/exception/ContextedRuntimeExceptionTest.java b/src/test/java/org/apache/commons/lang3/exception/ContextedRuntimeExceptionTest.java
index 192d94f6b..4efb133b5 100644
--- a/src/test/java/org/apache/commons/lang3/exception/ContextedRuntimeExceptionTest.java
+++ b/src/test/java/org/apache/commons/lang3/exception/ContextedRuntimeExceptionTest.java
@@ -26,6 +26,7 @@ import org.apache.commons.lang3.exception.ContextedExceptionTest.ObjectWithFault
/**
* JUnit tests for ContextedRuntimeException.
* @author D. Ashmore
+ * @author Apache Software Foundation
*
*/
public class ContextedRuntimeExceptionTest extends TestCase {
@@ -34,10 +35,6 @@ public class ContextedRuntimeExceptionTest extends TestCase {
private static final String TEST_MESSAGE = "Test Message";
private ContextedRuntimeException contextedRuntimeException;
- public ContextedRuntimeExceptionTest(String name) {
- super(name);
- }
-
public void testContextedException() {
contextedRuntimeException = new ContextedRuntimeException();
String message = contextedRuntimeException.getMessage();
@@ -88,8 +85,7 @@ public class ContextedRuntimeExceptionTest extends TestCase {
.addValue("test1", null)
.addValue("test2", "some value")
.addValue("test Date", new Date())
- .addValue("test Nbr", new Integer(5))
- .addValue("test Poorly written obj", new ObjectWithFaultyToString());
+ .addValue("test Nbr", new Integer(5));
String message = contextedRuntimeException.getMessage();
assertTrue(message.indexOf(TEST_MESSAGE)>=0);
@@ -97,27 +93,49 @@ public class ContextedRuntimeExceptionTest extends TestCase {
assertTrue(message.indexOf("test2")>=0);
assertTrue(message.indexOf("test Date")>=0);
assertTrue(message.indexOf("test Nbr")>=0);
- assertTrue(message.indexOf("test Poorly written obj")>=0);
assertTrue(message.indexOf("some value")>=0);
assertTrue(message.indexOf("5")>=0);
- assertTrue(message.indexOf("Crap")>=0);
assertTrue(contextedRuntimeException.getValue("test1") == null);
assertTrue(contextedRuntimeException.getValue("test2").equals("some value"));
- assertTrue(contextedRuntimeException.getValue("crap") == null);
- assertTrue(contextedRuntimeException.getValue("test Poorly written obj") instanceof ObjectWithFaultyToString);
- assertTrue(contextedRuntimeException.getLabelSet().size() == 5);
+ assertTrue(contextedRuntimeException.getLabelSet().size() == 4);
assertTrue(contextedRuntimeException.getLabelSet().contains("test1"));
assertTrue(contextedRuntimeException.getLabelSet().contains("test2"));
assertTrue(contextedRuntimeException.getLabelSet().contains("test Date"));
assertTrue(contextedRuntimeException.getLabelSet().contains("test Nbr"));
+
+ contextedRuntimeException.addValue("test2", "different value");
+ assertTrue(contextedRuntimeException.getLabelSet().size() == 5);
+ assertTrue(contextedRuntimeException.getLabelSet().contains("test2"));
+ assertTrue(contextedRuntimeException.getLabelSet().contains("test2[1]"));
+
+ String contextMessage = contextedRuntimeException.getFormattedExceptionMessage(null);
+ assertTrue(contextMessage.indexOf(TEST_MESSAGE) == -1);
+ assertTrue(contextedRuntimeException.getMessage().endsWith(contextMessage));
+ }
+
+ public void testReplaceValue() {
+ contextedRuntimeException = new ContextedRuntimeException(new Exception(TEST_MESSAGE))
+ .addValue("test Poorly written obj", new ObjectWithFaultyToString());
+
+ String message = contextedRuntimeException.getMessage();
+ assertTrue(message.indexOf(TEST_MESSAGE)>=0);
+ assertTrue(message.indexOf("test Poorly written obj")>=0);
+ assertTrue(message.indexOf("Crap")>=0);
+
+ assertTrue(contextedRuntimeException.getValue("crap") == null);
+ assertTrue(contextedRuntimeException.getValue("test Poorly written obj") instanceof ObjectWithFaultyToString);
+
+ assertTrue(contextedRuntimeException.getLabelSet().size() == 1);
assertTrue(contextedRuntimeException.getLabelSet().contains("test Poorly written obj"));
assertTrue(!contextedRuntimeException.getLabelSet().contains("crap"));
- contextedRuntimeException.addValue("test Poorly written obj", "replacement");
-
+ contextedRuntimeException.replaceValue("test Poorly written obj", "replacement");
+
+ assertTrue(contextedRuntimeException.getLabelSet().size() == 1);
+
String contextMessage = contextedRuntimeException.getFormattedExceptionMessage(null);
assertTrue(contextMessage.indexOf(TEST_MESSAGE) == -1);
assertTrue(contextedRuntimeException.getMessage().endsWith(contextMessage));
@@ -134,10 +152,4 @@ public class ContextedRuntimeExceptionTest extends TestCase {
String message = contextedRuntimeException.getMessage();
assertTrue(message != null);
}
-
- public void testGetMessage() {
- testAddValue();
- }
-
-
}
diff --git a/src/test/java/org/apache/commons/lang3/exception/DefaultExceptionContextTest.java b/src/test/java/org/apache/commons/lang3/exception/DefaultExceptionContextTest.java
index 95ab7d9c1..61c04d384 100644
--- a/src/test/java/org/apache/commons/lang3/exception/DefaultExceptionContextTest.java
+++ b/src/test/java/org/apache/commons/lang3/exception/DefaultExceptionContextTest.java
@@ -23,7 +23,7 @@ import org.apache.commons.lang3.exception.ContextedExceptionTest.ObjectWithFault
import junit.framework.TestCase;
/**
- * JUnit tests for DefaultExceptionContext
+ * JUnit tests for DefaultExceptionContext.
* @author D. Ashmore
*
*/
@@ -46,21 +46,42 @@ public class DefaultExceptionContextTest extends TestCase {
}
public void testAddValue() {
+ defaultExceptionContext.addValue("test2", "different value");
String message = defaultExceptionContext.getFormattedExceptionMessage("This is an error");
assertTrue(message.indexOf("This is an error")>=0);
assertTrue(message.indexOf("test1")>=0);
assertTrue(message.indexOf("test2")>=0);
+ assertTrue(message.indexOf("test2[1]")>=0);
assertTrue(message.indexOf("test Date")>=0);
assertTrue(message.indexOf("test Nbr")>=0);
assertTrue(message.indexOf("test Poorly written obj")>=0);
assertTrue(message.indexOf("some value")>=0);
+ assertTrue(message.indexOf("different value")>=0);
assertTrue(message.indexOf("5")>=0);
assertTrue(message.indexOf("Crap")>=0);
-
- //contextedException.printStackTrace();
}
+ public void testReplaceValue() {
+ defaultExceptionContext.replaceValue("test2", "different value");
+ defaultExceptionContext.replaceValue("test3", "3");
+
+ String message = defaultExceptionContext.getFormattedExceptionMessage("This is an error");
+ assertTrue(message.indexOf("This is an error")>=0);
+ assertTrue(message.indexOf("test1")>=0);
+ assertTrue(message.indexOf("test2")>=0);
+ assertTrue(message.indexOf("test3")>=0);
+ assertTrue(message.indexOf("test Date")>=0);
+ assertTrue(message.indexOf("test Nbr")>=0);
+ assertTrue(message.indexOf("test Poorly written obj")>=0);
+ assertTrue(message.indexOf("different value")>=0);
+ assertTrue(message.indexOf("5")>=0);
+ assertTrue(message.indexOf("Crap")>=0);
+
+ assertTrue(message.indexOf("test2[1]")<0);
+ assertTrue(message.indexOf("some value")<0);
+}
+
public void testFormattedExceptionMessageNull() {
defaultExceptionContext = new DefaultExceptionContext();
defaultExceptionContext.getFormattedExceptionMessage(null);