maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen Connolly <stephen.alan.conno...@gmail.com>
Subject Re: RE: svn commit: r1153562 - in /maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-tck/src/test/java/org/codehaus/plexus/util: ExceptionUtilsTest.java exceptionutils/TestExceptionWithDetail.java
Date Wed, 03 Aug 2011 22:34:51 GMT
theorys or parameters tests. both would require a separate test class.

- Stephen

---
Sent from my Android phone, so random spelling mistakes, random nonsense
words and other nonsense are a direct result of using swype to type on the
screen
On 3 Aug 2011 20:55, "Mark Struberg" <struberg@yahoo.de> wrote:
> I'm learning something new every day ;)
>
> What I need to do:
>
> Assume you have a methodX with 2 params
>
> So I need to test
>
> 1.) methodX(a, null);
> 2.) methodX(null, b);
> 3.) methodX(null, null);
>
> And I don't like to write 3 extra methods for it.
> Is this possible without catching them separately?
>
> txs and LieGrue,
> strub
>
>
>
> --- On Wed, 8/3/11, Thiessen, Todd (Todd) <tthiessen@avaya.com> wrote:
>
>> From: Thiessen, Todd (Todd) <tthiessen@avaya.com>
>> Subject: RE: svn commit: r1153562 - in
/maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-tck/src/test/java/org/codehaus/plexus/util:
ExceptionUtilsTest.java exceptionutils/TestExceptionWithDetail.java
>> To: "Maven Developers List" <dev@maven.apache.org>
>> Cc: "commits@maven.apache.org" <commits@maven.apache.org>
>> Date: Wednesday, August 3, 2011, 7:37 PM
>> Better still would be to use the
>> @Rule annotation.  Ie:
>>
>> @Rule
>> public ExpectedException exepctedException =
>> ExpectedException.none();
>>
>> @Test
>> public void doSomethingThatBlowsup throws Exception
>> {
>>   expectedException.expect(SomeException.class);
>>   expectedException.expectMessage("Ensure message
>> contains this string");
>>   doSomething();
>> }
>>
>> The annotation is nice since you can check the string as
>> well. And if you really need, you can create a matcher to
>> check things like that cause of the exception etc...
>>
>> But this may need java 1.6.
>>
>> > -----Original Message-----
>> > From: Stephen Connolly [mailto:stephen.alan.connolly@gmail.com]
>> > Sent: Wednesday, August 03, 2011 3:22 PM
>> > To: dev@maven.apache.org
>> > Cc: commits@maven.apache.org
>> > Subject: Re: svn commit: r1153562 - in
>> /maven/sandbox/trunk/plexus-
>> > utils-commons-bridge/plexus-utils-
>> > tck/src/test/java/org/codehaus/plexus/util:
>> ExceptionUtilsTest.java
>> > exceptionutils/TestExceptionWithDetail.java
>> >
>> > fyi, you may have a little inefficiency when you have
>> an expected
>> > exception.
>> >
>> >
>> > @Test(expected=...)
>> > public void dosomethingblowsup() throws Exception {
>> >   dosomething();
>> > }
>> >
>> > is better than
>> >
>> > @Test
>> > public void dosomethingblowsup() throws Exception {
>> > try {
>> >   dosomething();
>> >   fail();
>> > } catch (...) {
>> >   // expected
>> > }
>> > }
>> >
>> > unless you have further asserts to make on the
>> expected exception.
>> >
>> > - Stephen
>> >
>> > ---
>> > Sent from my Android phone, so random spelling
>> mistakes, random
>> > nonsense
>> > words and other nonsense are a direct result of using
>> swype to type on
>> > the
>> > screen
>> > On 3 Aug 2011 17:16, <struberg@apache.org>
>> wrote:
>> > > Author: struberg
>> > > Date: Wed Aug 3 16:16:23 2011
>> > > New Revision: 1153562
>> > >
>> > > URL: http://svn.apache.org/viewvc?rev=1153562&view=rev
>> > > Log:
>> > > refine ExceptionUtilsTest
>> > >
>> > > almost done now!
>> > >
>> > > Added:
>> > >
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > WithDetail.java
>> > > - copied, changed from r1153297,
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > .java
>> > > Modified:
>> > >
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/ExceptionUtilsTest.java
>> > >
>> > > Modified:
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/ExceptionUtilsTest.java
>> > > URL:
>> > http://svn.apache.org/viewvc/maven/sandbox/trunk/plexus-utils-commons-
>> > bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/ExceptionUtilsTest.java?rev=
>> > 1153562&r1=1153561&r2=1153562&view=diff
>> > >
>> >
>> =======================================================================
>> > =======
>> > > ---
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/ExceptionUtilsTest.java
>> > (original)
>> > > +++
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/ExceptionUtilsTest.java
>> > Wed Aug 3 16:16:23 2011
>> > > @@ -21,11 +21,14 @@ package
>> org.codehaus.plexus.util;
>> > >
>> > > import org.apache.maven.tck.FixPlexusBugs;
>> > > import
>> org.codehaus.plexus.util.exceptionutils.TestException;
>> > > +import
>> >
>> org.codehaus.plexus.util.exceptionutils.TestExceptionWithDetail;
>> > > import org.junit.Rule;
>> > > import org.junit.Test;
>> > > import org.junit.Assert;
>> > > import org.junit.matchers.JUnitMatchers;
>> > >
>> > > +import java.io.ByteArrayOutputStream;
>> > > +import java.io.PrintStream;
>> > > import
>> java.lang.reflect.InvocationTargetException;
>> > > import java.sql.SQLException;
>> > > import java.util.List;
>> > > @@ -245,7 +248,7 @@ public class
>> ExceptionUtilsTest extends
>> > > // NPE safe test
>> > > try
>> > > {
>> > > - ExceptionUtils.getStackTrace( (Throwable) null
>> );
>> > > + ExceptionUtils.getStackTrace((Throwable)
>> null);
>> > > fail( "getStackTrace(null) NPE expected" );
>> > > }
>> > > catch ( NullPointerException e )
>> > > @@ -274,7 +277,7 @@ public class
>> ExceptionUtilsTest extends
>> > > // NPE safe test
>> > > try
>> > > {
>> > > - ExceptionUtils.getStackFrames( (Throwable) null
>> );
>> > > + ExceptionUtils.getStackFrames((Throwable)
>> null);
>> > > fail( "getStackFrames(null) NPE expected" );
>> > > }
>> > > catch ( NullPointerException e )
>> > > @@ -315,7 +318,7 @@ public class
>> ExceptionUtilsTest extends
>> > >
>> > > String[] stackFrames =
>> ExceptionUtils.getStackFrames( stackTrace );
>> > > assertNotNull( stackFrames );
>> > > - assertEquals( 23, stackFrames.length );
>> > > + assertEquals(23, stackFrames.length);
>> > >
>> > > assertEquals( "java.lang.NullPointerException:
>> mymessage",
>> > stackFrames[0]
>> > );
>> > > assertThat( "stackFrames", stackFrames[1]
>> > > @@ -339,8 +342,26 @@ public class
>> ExceptionUtilsTest extends
>> > > @Test
>> > > public void testGetThrowableCount()
>> > > {
>> > > - //X TODO refine test!
>> > > - logger.warning("TODO implement!");
>> > > + NullPointerException npe = new
>> NullPointerException( "dooh just a
>> > random, nullpointer" );
>> > > + SQLException sqlException = new SQLException(
>> npe );
>> > > + TestException testException = new
>> TestException();
>> > > + testException.setSourceException( sqlException
>> );
>> > > +
>> > > + assertThat( "getThrowableCount"
>> > > + , ExceptionUtils.getThrowableCount( npe )
>> > > + , is( 1 ));
>> > > +
>> > > + assertThat( "getThrowableCount"
>> > > + , ExceptionUtils.getThrowableCount(
>> sqlException )
>> > > + , is( 2 ));
>> > > +
>> > > + assertThat( "getThrowableCount"
>> > > + , ExceptionUtils.getThrowableCount(
>> testException )
>> > > + , is( 3 ));
>> > > +
>> > > + // NPE safe test
>> > > + // this method should NOT throw a NPE on a null
>> argument!
>> > > + ExceptionUtils.getThrowableCount( null );
>> > > }
>> > >
>> > > /**
>> > > @@ -350,18 +371,109 @@ public class
>> ExceptionUtilsTest extends
>> > > @Test
>> > > public void testIndexOfThrowable()
>> > > {
>> > > - //X TODO refine test!
>> > > - logger.warning("TODO implement!");
>> > > + NullPointerException npe = new
>> NullPointerException( "dooh just a
>> > random, nullpointer" );
>> > > + SQLException sqlException = new SQLException(
>> npe );
>> > > + TestException testException = new
>> TestException();
>> > > + testException.setSourceException( sqlException
>> );
>> > > +
>> > > + assertThat("indexOfThrowable"
>> > > + , ExceptionUtils.indexOfThrowable(npe,
>> NullPointerException.class)
>> > > + , is(0));
>> > > +
>> > > + assertThat( "indexOfThrowable for non contained
>> Exception type"
>> > > + , ExceptionUtils.indexOfThrowable( npe,
>> SQLException.class )
>> > > + , is( -1 ));
>> > > +
>> > > +
>> > > + assertThat( "indexOfThrowable"
>> > > + , ExceptionUtils.indexOfThrowable(
>> testException,
>> > NullPointerException.class )
>> > > + , is( 2 ));
>> > > +
>> > > + assertThat( "indexOfThrowable for non contained
>> Exception type"
>> > > + , ExceptionUtils.indexOfThrowable(
>> testException,
>> > SQLException.class )
>> > > + , is( 1 ));
>> > > +
>> > > + assertThat( "indexOfThrowable"
>> > > + , ExceptionUtils.indexOfThrowable(
>> testException,
>> > TestException.class )
>> > > + , is( 0 ));
>> > > +
>> > > +
>> > > + // tests for indexOfThrowable with start index
>> param
>> > > + assertThat( "indexOfThrowable"
>> > > + , ExceptionUtils.indexOfThrowable(
>> testException,
>> > NullPointerException.class, 2 )
>> > > + , is( 2 ));
>> > > +
>> > > + assertThat( "indexOfThrowable"
>> > > + , ExceptionUtils.indexOfThrowable(
>> testException,
>> > SQLException.class, 2
>> > )
>> > > + , is( -1 ));
>> > > +
>> > > + try
>> > > + {
>> > > + ExceptionUtils.indexOfThrowable(
>> testException,
>> > TestException.class, 3
>> > );
>> > > + fail( "indexOfThrowable with too large inces"
>> );
>> > > + }
>> > > + catch ( IndexOutOfBoundsException e )
>> > > + {
>> > > + //nothing to do, Exception was expected
>> > > + }
>> > > +
>> > > + // NPE safe tests
>> > > + try
>> > > + {
>> > > + ExceptionUtils.indexOfThrowable( null,
>> TestException.class );
>> > > + fail( "indexOfThrowable(null, Exception.class)
>> NPE expected" );
>> > > + }
>> > > + catch ( IndexOutOfBoundsException e )
>> > > + {
>> > > + //nothing to do, Exception was expected
>> > > + }
>> > > + assertThat( "indexOfThrowable for null
>> Exception type"
>> > > + , ExceptionUtils.indexOfThrowable(npe, null)
>> > > + , is(-1));
>> > > }
>> > >
>> > > /**
>> > > + * Most probably this only ever returns false on
>> null in JDK > 1.4
>> > > + * Because Throwable itself nowadays has a
>> getCause() method which
>> > > + * is in the method list...
>> > > + *
>> > > * @see
>> ExceptionUtils#isNestedThrowable(Throwable)
>> > > */
>> > > @Test
>> > > public void testIsNestedThrowable()
>> > > {
>> > > - //X TODO refine test!
>> > > - logger.warning("TODO implement!");
>> > > + NullPointerException npe = new
>> NullPointerException( "dooh just a
>> > random, nullpointer" );
>> > > + SQLException sqlException = new SQLException(
>> npe );
>> > > + TestException testException = new
>> TestException();
>> > > + testException.setSourceException( sqlException
>> );
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable( null )
>> > > + , is( false ) );
>> > > +
>> > > + assertThat("isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable(npe)
>> > > + , is(true));
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable(
>> sqlException )
>> > > + , is( true ) );
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable( new
>> InvocationTargetException(
>> > npe )
>> > )
>> > > + , is( true ) );
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable( new
>> TestExceptionWithDetail() )
>> > > + , is( true ) );
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable( new
>> Exception() )
>> > > + , is( true ) );
>> > > +
>> > > + assertThat( "isNestedThrowable"
>> > > + , ExceptionUtils.isNestedThrowable( new
>> Throwable() )
>> > > + , is( true ) );
>> > > }
>> > >
>> > > /**
>> > > @@ -372,8 +484,32 @@ public class
>> ExceptionUtilsTest extends
>> > > @Test
>> > > public void testPrintRootCauseStackTrace()
>> > > {
>> > > - //X TODO refine test!
>> > > - logger.warning("TODO implement!");
>> > > + NullPointerException npe = new
>> NullPointerException( "dooh just a
>> > random, nullpointer" );
>> > > + SQLException sqlException = new SQLException(
>> npe );
>> > > + TestException testException = new
>> TestException();
>> > > + testException.setSourceException( sqlException
>> );
>> > > +
>> > > + ByteArrayOutputStream bao = new
>> ByteArrayOutputStream();
>> > > + PrintStream outStream = new PrintStream( bao
>> );
>> > > + PrintStream originalErr = System.err;
>> > > +
>> > > + try
>> > > + {
>> > > + System.setErr( outStream );
>> > > + ExceptionUtils.printRootCauseStackTrace( npe
>> );
>> > > +
>> > > + assertThat( "stackFrames"
>> > > + , bao.toString()
>> > > + , JUnitMatchers.containsString(
>> "java.lang.NullPointerException:
>> > dooh
>> > just a random, nullpointer"
>> > > + + "\n\tat
>> org.codehaus.plexus.util.ExceptionUtilsTest."
>> > > + +
>> "testPrintRootCauseStackTrace(ExceptionUtilsTest.java:" )
>> );
>> > > + }
>> > > + finally
>> > > + {
>> > > + System.setErr( originalErr );
>> > > + }
>> > > +
>> > > + //X TODO A FEW THINGS STILL MISSING! will
>> continue later today...
>> > > }
>> > >
>> > > }
>> > >
>> > > Copied:
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > WithDetail.java
>> > (from r1153297,
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > .java)
>> > > URL:
>> > http://svn.apache.org/viewvc/maven/sandbox/trunk/plexus-utils-commons-
>> > bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> >
>> WithDetail.java?p2=maven/sandbox/trunk/plexus-utils-commons-
>> > bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> >
>> WithDetail.java&p1=maven/sandbox/trunk/plexus-utils-commons-
>> > bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> >
>> .java&r1=1153297&r2=1153562&rev=1153562&view=diff
>> > >
>> >
>> =======================================================================
>> > =======
>> > > ---
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > .java
>> > (original)
>> > > +++
>> >
>> maven/sandbox/trunk/plexus-utils-commons-bridge/plexus-utils-
>> >
>> tck/src/test/java/org/codehaus/plexus/util/exceptionutils/TestException
>> > WithDetail.java
>> > Wed Aug 3 16:16:23 2011
>> > > @@ -23,36 +23,26 @@ package
>> org.codehaus.plexus.util.excepti
>> > >
>> > >
>> > > /**
>> > > + * This test exception has a 'detail' field.
>> > > *
>> > > * @author <a href="mailto:struberg@yahoo.de">Mark
>> Struberg</a>
>> > > */
>> > > -public class TestException extends Exception
>> > > +public class TestExceptionWithDetail extends
>> Exception
>> > > {
>> > > - private Throwable cause;
>> > > - private Throwable specialCause;
>> > > + private Throwable detail;
>> > >
>> > > - public TestException()
>> > > + public TestExceptionWithDetail()
>> > > {
>> > > super();
>> > > }
>> > >
>> > > - public void setSourceException( Throwable cause
>> )
>> > > + public Throwable getDetail()
>> > > {
>> > > - this.cause = cause;
>> > > + return detail;
>> > > }
>> > >
>> > > - public Throwable getSourceException()
>> > > + public void setDetail( Throwable detail )
>> > > {
>> > > - return cause;
>> > > - }
>> > > -
>> > > - public Throwable getSpecialCause()
>> > > - {
>> > > - return specialCause;
>> > > - }
>> > > -
>> > > - public void setSpecialCause( Throwable
>> specialCause )
>> > > - {
>> > > - this.specialCause = specialCause;
>> > > + this.detail = detail;
>> > > }
>> > > }
>> > >
>> > >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message