1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.proxy.exception;
19
20 import junit.framework.TestCase;
21
22
23
24
25
26 public abstract class AbstractExceptionClassTestCase extends TestCase
27 {
28 private final Class exceptionClass;
29
30 public AbstractExceptionClassTestCase( Class exceptionClass )
31 {
32 this.exceptionClass = exceptionClass;
33 }
34
35 public void testNoArgConstructor() throws Exception
36 {
37 Exception e = ( Exception )exceptionClass.getConstructor( new Class[] {} ).newInstance( new Object[] {} );
38 assertNull( e.getMessage() );
39 assertNull( e.getCause() );
40 }
41
42 public void testMessageOnlyConstructor() throws Exception
43 {
44 final String message = "message";
45 Exception e = ( Exception )exceptionClass.getConstructor( new Class[] { String.class } ).newInstance( new Object[] { message } );
46 assertEquals( message, e.getMessage() );
47 assertNull( e.getCause() );
48 }
49
50 public void testCauseOnlyConstructor() throws Exception
51 {
52 final Exception cause = new Exception();
53 Exception e = ( Exception )exceptionClass.getConstructor( new Class[] { Throwable.class } ).newInstance( new Object[] { cause } );
54 assertEquals( cause.toString(), e.getMessage() );
55 assertEquals( cause, e.getCause() );
56 }
57
58 public void testMessageAndCauseConstructor() throws Exception
59 {
60 final Exception cause = new Exception();
61 final String message = "message";
62 Exception e = ( Exception )exceptionClass.getConstructor( new Class[] { String.class, Throwable.class } ).newInstance( new Object[] { message, cause } );
63 assertEquals( message, e.getMessage() );
64 assertEquals( cause, e.getCause() );
65 }
66 }