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) <tthies...@avaya.com> wrote:

> From: Thiessen, Todd (Todd) <tthies...@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: "comm...@maven.apache.org" <comm...@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.conno...@gmail.com]
> > Sent: Wednesday, August 03, 2011 3:22 PM
> > To: dev@maven.apache.org
> > Cc: comm...@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, <strub...@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:strub...@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-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
> 
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to