added test coverage
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/lang/trunk@137578 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e92543334a
commit
332399a528
|
@ -57,6 +57,7 @@ import java.io.ByteArrayInputStream;
|
|||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.PrintStream;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
@ -66,7 +67,7 @@ import junit.textui.TestRunner;
|
|||
* Tests the org.apache.commons.lang.exception.NestableException class.
|
||||
*
|
||||
* @author <a href="mailto:steven@caswell.name">Steven Caswell</a>
|
||||
* @version $Id: NestableExceptionTestCase.java,v 1.8 2003/05/21 23:49:14 scolebourne Exp $
|
||||
* @version $Id: NestableExceptionTestCase.java,v 1.9 2003/08/07 00:50:30 stevencaswell Exp $
|
||||
*/
|
||||
public class NestableExceptionTestCase extends AbstractNestableTestCase {
|
||||
|
||||
|
@ -242,6 +243,42 @@ public class NestableExceptionTestCase extends AbstractNestableTestCase {
|
|||
{
|
||||
return Exception.class;
|
||||
}
|
||||
|
||||
public void testSpecificPrintStackTrace()
|
||||
{
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
PrintStream ps = new PrintStream(baos);
|
||||
NestableException ne = new NestableException("outer", new NestableException("inner", new Exception("another exception")));
|
||||
for(int i = 0; i < 2; i++)
|
||||
{
|
||||
if(i == 0)
|
||||
{
|
||||
// Test printStackTrac()
|
||||
// Replace System.err with our own PrintStream so that we can
|
||||
// obtain and check the printStrackTrace output
|
||||
PrintStream err = System.err;
|
||||
System.setErr(ps);
|
||||
ne.printStackTrace();
|
||||
// Restore the System.err
|
||||
System.setErr(err);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Test printStackTrace(PrintStream)
|
||||
ne.printStackTrace(ps);
|
||||
}
|
||||
}
|
||||
String msg = baos.toString();
|
||||
assertTrue( "printStackTrace() starts with outer message", msg.startsWith("org.apache.commons.lang.exception.NestableException: outer"));
|
||||
assertTrue( "printStackTrace() contains 1st nested message", msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableException: inner") >= 0);
|
||||
assertTrue( "printStackTrace() contains 2nd nested message", msg.indexOf("Caused by: java.lang.Exception: another exception") >= 0);
|
||||
assertTrue( "printStackTrace() inner message after outer message",
|
||||
msg.indexOf("org.apache.commons.lang.exception.NestableException: outer") <
|
||||
msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableException: inner"));
|
||||
assertTrue( "printStackTrace() cause message after inner message",
|
||||
msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableException: inner") <
|
||||
msg.indexOf("Caused by: java.lang.Exception: another exception"));
|
||||
}
|
||||
|
||||
public void testSerialization()
|
||||
throws java.io.IOException, ClassNotFoundException
|
||||
|
|
|
@ -53,6 +53,8 @@
|
|||
*/
|
||||
package org.apache.commons.lang.exception;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.PrintStream;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
import junit.textui.TestRunner;
|
||||
|
@ -61,7 +63,7 @@ import junit.textui.TestRunner;
|
|||
* Tests the org.apache.commons.lang.exception.NestableRuntimeException class.
|
||||
*
|
||||
* @author <a href="mailto:steven@caswell.name">Steven Caswell</a>
|
||||
* @version $Id: NestableRuntimeExceptionTestCase.java,v 1.7 2003/05/21 23:49:14 scolebourne Exp $
|
||||
* @version $Id: NestableRuntimeExceptionTestCase.java,v 1.8 2003/08/07 00:50:30 stevencaswell Exp $
|
||||
*/
|
||||
public class NestableRuntimeExceptionTestCase extends AbstractNestableTestCase {
|
||||
|
||||
|
@ -238,6 +240,45 @@ public class NestableRuntimeExceptionTestCase extends AbstractNestableTestCase {
|
|||
return RuntimeException.class;
|
||||
}
|
||||
|
||||
public void testSpecificPrintStackTrace()
|
||||
{
|
||||
// Test printStackTrac()
|
||||
// Replace System.err with our own PrintStream so that we can obtain
|
||||
// and check the printStrackTrace output
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
PrintStream ps = new PrintStream(baos);
|
||||
NestableRuntimeException ne = new NestableRuntimeException("outer", new NestableRuntimeException("inner", new Exception("another exception")));
|
||||
for(int i = 0; i < 2; i++)
|
||||
{
|
||||
if(i == 0)
|
||||
{
|
||||
// Test printStackTrac()
|
||||
// Replace System.err with our own PrintStream so that we can
|
||||
// obtain and check the printStrackTrace output
|
||||
PrintStream err = System.err;
|
||||
System.setErr(ps);
|
||||
ne.printStackTrace();
|
||||
// Restore the System.err
|
||||
System.setErr(err);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Test printStackTrace(PrintStream)
|
||||
ne.printStackTrace(ps);
|
||||
}
|
||||
}
|
||||
String msg = baos.toString();
|
||||
assertTrue( "printStackTrace() starts with outer message", msg.startsWith("org.apache.commons.lang.exception.NestableRuntimeException: outer"));
|
||||
assertTrue( "printStackTrace() contains 1st nested message", msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableRuntimeException: inner") >= 0);
|
||||
assertTrue( "printStackTrace() contains 2nd nested message", msg.indexOf("Caused by: java.lang.Exception: another exception") >= 0);
|
||||
assertTrue( "printStackTrace() inner message after outer message",
|
||||
msg.indexOf("org.apache.commons.lang.exception.NestableRuntimeException: outer") <
|
||||
msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableRuntimeException: inner"));
|
||||
assertTrue( "printStackTrace() cause message after inner message",
|
||||
msg.indexOf("Caused by: org.apache.commons.lang.exception.NestableRuntimeException: inner") <
|
||||
msg.indexOf("Caused by: java.lang.Exception: another exception"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue