1 package test.crispy; 2 3 import java.util.Hashtable; 4 import java.util.Map; 5 6 import junit.framework.TestCase; 7 import net.sf.crispy.ExceptionWrapper; 8 import net.sf.crispy.InvocationException; 9 import net.sf.crispy.StackTraceElementWrapper; 10 import net.sf.crispy.util.Converter; 11 12 public class ExceptionWrapperTest extends TestCase { 13 14 public void testExceptionWrapper() throws Exception { 15 String lvMessage = "JUnit-Test-Message"; 16 JUnitTestException lvException = new JUnitTestException(lvMessage); 17 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException); 18 assertEquals(lvMessage, lvExceptionWrapper.getMessage()); 19 assertEquals(JUnitTestException.class.getName(), lvExceptionWrapper.getExceptionClassName()); 20 assertNotNull(lvExceptionWrapper.getStackTraceByteArray()); 21 assertTrue(lvExceptionWrapper.getStackTraceByteArray().length > 0); 22 assertNotNull(lvExceptionWrapper.getStackTraceElementWrapperList()); 23 assertTrue(lvExceptionWrapper.getStackTraceElementWrapperList().size() > 1); 24 } 25 26 public void testNewInstance() throws Exception { 27 String lvMessage = "JUnit-Test-Message"; 28 JUnitTestException lvException = new JUnitTestException(lvMessage); 29 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException); 30 31 Exception lvException2 = lvExceptionWrapper.newExceptionInstance(); 32 assertNotNull(lvException2); 33 assertTrue(lvException2 instanceof JUnitTestException); 34 assertEquals(lvMessage, lvException2.getMessage()); 35 } 36 37 public void testNewInstanceWithExceptionSerializer_DefaultException() throws Exception { 38 String lvMessage = "JUnit-Test-Message-2"; 39 JUnitTestException3 lvException = new JUnitTestException3(lvMessage, null); 40 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException, true); 41 Object lvResult = lvExceptionWrapper.newExceptionInstance(); 42 assertTrue(lvResult instanceof InvocationException); 43 Throwable lvCause = ((Exception) lvResult).getCause(); 44 assertNull(lvCause); 45 assertEquals(lvMessage, ((Exception) lvResult).getMessage()); 46 } 47 48 public void testNewInstanceWithOutExceptionSerializer_DefaultException() throws Exception { 49 String lvMessage = "JUnit-Test-Message-3"; 50 JUnitTestException3 lvException = new JUnitTestException3(lvMessage, null); 51 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException); 52 Object lvResult = lvExceptionWrapper.newExceptionInstance(); 53 assertTrue(lvResult instanceof InvocationException); 54 Throwable lvCause = ((Exception) lvResult).getCause(); 55 assertNull(lvCause); 56 assertEquals(lvMessage, ((Exception) lvResult).getMessage()); 57 } 58 59 public void testNewInstanceWithExceptionSerializer() throws Exception { 60 String lvMessage = "JUnit-Test-Message-4"; 61 JUnitTestException2 lvException2 = new JUnitTestException2(lvMessage); 62 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException2, true); 63 Object lvResult = lvExceptionWrapper.newExceptionInstance(); 64 assertNotNull(lvResult); 65 assertTrue(lvResult instanceof JUnitTestException2); 66 assertEquals(lvMessage, ((Exception) lvResult).getCause().getMessage()); 67 } 68 69 public void testNewInstanceWithOutExceptionSerializer() throws Exception { 70 String lvMessage = "JUnit-Test-Message-5"; 71 JUnitTestException2 lvException2 = new JUnitTestException2(lvMessage); 72 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException2); 73 Object lvResult = lvExceptionWrapper.newExceptionInstance(); 74 assertNotNull(lvResult); 75 assertTrue(lvResult instanceof JUnitTestException2); 76 assertEquals(lvMessage, ((Exception) lvResult).getMessage()); 77 } 78 79 public void testNewInstanceWithExceptionWithNoArgsInConstructor() throws Exception { 80 JUnitTestException4 lvException = new JUnitTestException4(); 81 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException); 82 Object lvResult = lvExceptionWrapper.newExceptionInstance(); 83 assertNotNull(lvResult); 84 assertTrue(lvResult instanceof JUnitTestException4); 85 assertNull(((Exception) lvResult).getMessage()); 86 } 87 88 89 public void testConvertExceptionWrapper() throws Exception { 90 String lvMessage = "JUnit-Test-Message"; 91 JUnitTestException lvException = new JUnitTestException(lvMessage); 92 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(lvException); 93 94 Converter lvConverter = new Converter(); 95 Object lvSimple = lvConverter.makeSimple(lvExceptionWrapper); 96 Object lvComplex = lvConverter.makeComplex(lvSimple); 97 98 assertNotNull(lvSimple); 99 assertNotNull(lvComplex); 100 assertTrue(lvComplex instanceof ExceptionWrapper); 101 ExceptionWrapper lvExceptionWrapper2 = (ExceptionWrapper) lvComplex; 102 assertEquals(lvExceptionWrapper.getExceptionClassName(), lvExceptionWrapper2.getExceptionClassName()); 103 assertEquals(lvExceptionWrapper.getMessage(), lvExceptionWrapper2.getMessage()); 104 assertEquals(lvExceptionWrapper.getStackTraceByteArray(), lvExceptionWrapper2.getStackTraceByteArray()); 105 assertEquals(lvExceptionWrapper.getStackTraceElementWrapperList().size(), lvExceptionWrapper2.getStackTraceElementWrapperList().size()); 106 } 107 108 public void testStackTraceElementWrapper() throws Exception { 109 String lvMessage = "JUnit-Test-Message"; 110 JUnitTestException lvException = new JUnitTestException(lvMessage); 111 StackTraceElement lvElement = lvException.getStackTrace()[0]; 112 StackTraceElementWrapper lvElementWrapper = new StackTraceElementWrapper(lvElement); 113 assertEquals(lvElement.getClassName(), lvElementWrapper.getClassName()); 114 assertEquals(lvElement.getFileName(), lvElementWrapper.getFileName()); 115 assertEquals(lvElement.getMethodName(), lvElementWrapper.getMethodName()); 116 assertEquals(lvElement.getLineNumber(), lvElementWrapper.getLineNumber()); 117 assertNotNull(lvElementWrapper.toString()); 118 } 119 120 public void testStackTraceElementConverter() throws Exception { 121 String lvMessage = "JUnit-Test-Message"; 122 JUnitTestException lvException = new JUnitTestException(lvMessage); 123 StackTraceElement lvElement = lvException.getStackTrace()[0]; 124 StackTraceElementWrapper lvElementWrapper = new StackTraceElementWrapper(lvElement); 125 126 Converter lvConverter = new Converter(); 127 Object lvSimple = lvConverter.makeSimple(lvElementWrapper); 128 Object lvComplex = lvConverter.makeComplex(lvSimple); 129 130 assertNotNull(lvSimple); 131 assertNotNull(lvComplex); 132 assertTrue(lvComplex instanceof StackTraceElementWrapper); 133 assertTrue(lvComplex instanceof StackTraceElementWrapper); 134 StackTraceElementWrapper lvElementWrapper2 = (StackTraceElementWrapper) lvComplex; 135 assertEquals(lvElementWrapper.getClassName(), lvElementWrapper2.getClassName()); 136 assertEquals(lvElementWrapper.getFileName(), lvElementWrapper2.getFileName()); 137 assertEquals(lvElementWrapper.getMethodName(), lvElementWrapper2.getMethodName()); 138 assertEquals(lvElementWrapper.getLineNumber(), lvElementWrapper2.getLineNumber()); 139 assertEquals(lvElementWrapper.isNativeMethod(), lvElementWrapper2.isNativeMethod()); 140 } 141 142 public void testIfThrowableThanHandleThrowable() throws Exception { 143 assertNull(ExceptionWrapper.isThrowableThanHandleThrowable(null)); 144 145 assertNotNull(ExceptionWrapper.isThrowableThanHandleThrowable("Test-String")); 146 assertEquals("Test-String", ExceptionWrapper.isThrowableThanHandleThrowable("Test-String")); 147 148 Object o = ExceptionWrapper.isThrowableThanHandleThrowable(new JUnitTestException("Test-Exception")); 149 assertNotNull(o); 150 assertTrue(o instanceof ExceptionWrapper); 151 ExceptionWrapper ew = (ExceptionWrapper) o; 152 assertEquals(JUnitTestException.class.getName(), ew.getExceptionClassName()); 153 assertEquals("Test-Exception", ew.getMessage()); 154 } 155 156 public void testIsResultExceptionThanThrowIt() throws Exception { 157 assertNull(ExceptionWrapper.isResultExceptionThanThrowIt(null)); 158 159 assertNotNull(ExceptionWrapper.isResultExceptionThanThrowIt("Test-String")); 160 assertEquals("Test-String", ExceptionWrapper.isResultExceptionThanThrowIt("Test-String")); 161 162 try { 163 Map map = new Hashtable(); 164 map.put("class", ExceptionWrapper.class.getName()); 165 map.put("exceptionClassName", JUnitTestException.class.getName()); 166 map.put("message", "Test-Exception-Massage"); 167 ExceptionWrapper.isResultExceptionThanThrowIt(map); 168 fail("Exception must thrown a JUnitTestException."); 169 } catch (JUnitTestException e) { 170 assertTrue(true); 171 } 172 } 173 174 public void testIsResultExceptionThanThrowIt2() throws Exception { 175 assertNull(ExceptionWrapper.isResultExceptionThanThrowIt(null)); 176 177 assertNotNull(ExceptionWrapper.isResultExceptionThanThrowIt("Test-String")); 178 assertEquals("Test-String", ExceptionWrapper.isResultExceptionThanThrowIt("Test-String")); 179 180 try { 181 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(new JUnitTestException("Test-Exception-Massage")); 182 ExceptionWrapper.isResultExceptionThanThrowIt(lvExceptionWrapper); 183 fail("Exception must thrown a JUnitTestException."); 184 } catch (JUnitTestException e) { 185 assertTrue(true); 186 } 187 } 188 189 public void testIsResultExceptionThanThrowIt3() throws Exception { 190 Object o = ExceptionWrapper.isResultExceptionThanThrowIt(new Hashtable()); 191 assertNotNull(o); 192 assertTrue(o instanceof Map); 193 assertEquals(new Hashtable(), o); 194 } 195 196 public void testNewExceptionInstanceErrors() throws Exception { 197 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(); 198 199 Exception lvException = lvExceptionWrapper.newExceptionInstance(); 200 assertNotNull(lvException); 201 assertTrue(lvException instanceof InvocationException); 202 assertEquals("no message available", lvException.getMessage()); 203 204 lvExceptionWrapper.setExceptionClassName("not.valid.class.name"); 205 assertNotNull(lvException); 206 assertTrue(lvException instanceof InvocationException); 207 assertEquals("no message available", lvException.getMessage()); 208 } 209 210 public void testNewExceptionInstance() throws Exception { 211 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(); 212 lvExceptionWrapper.setExceptionClassName(JUnitTestException.class.getName()); 213 String lvMessage = "Test-Message"; 214 lvExceptionWrapper.setMessage(lvMessage); 215 216 Exception lvException = lvExceptionWrapper.newExceptionInstance(); 217 assertNotNull(lvException); 218 assertTrue(lvException instanceof JUnitTestException); 219 assertEquals(lvMessage, lvException.getMessage()); 220 } 221 222 public void testNewExceptionInstance2() throws Exception { 223 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(); 224 lvExceptionWrapper.setExceptionClassName(JUnitTestException2.class.getName()); 225 String lvMessage = "Test-Message"; 226 lvExceptionWrapper.setMessage(lvMessage); 227 228 Exception lvException = lvExceptionWrapper.newExceptionInstance(); 229 assertNotNull(lvException); 230 assertTrue(lvException instanceof JUnitTestException2); 231 assertNotNull(lvException.getMessage()); 232 assertEquals(lvMessage, lvException.getMessage()); 233 } 234 235 public void testNewExceptionInstance3() throws Exception { 236 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(); 237 lvExceptionWrapper.setExceptionClassName(JUnitTestException3.class.getName()); 238 String lvMessage = "Test-Message"; 239 lvExceptionWrapper.setMessage(lvMessage); 240 241 Exception lvException = lvExceptionWrapper.newExceptionInstance(); 242 assertNotNull(lvException); 243 assertTrue(lvException instanceof InvocationException); 244 assertEquals(lvMessage, lvException.getMessage()); 245 } 246 247 248 public void testExceptionPlaceHolderIsNull() throws Exception { 249 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(); 250 assertNull(lvExceptionWrapper.getExceptionPlaceHolder()); 251 252 lvExceptionWrapper = new ExceptionWrapper(new JUnitTestException("Test-Message")); 253 assertNull(lvExceptionWrapper.getExceptionPlaceHolder()); 254 255 lvExceptionWrapper = new ExceptionWrapper(new JUnitTestException("Test-Message"), false); 256 assertNull(lvExceptionWrapper.getExceptionPlaceHolder()); 257 } 258 259 public void testExceptionPlaceHolderIsNotNull() throws Exception { 260 ExceptionWrapper lvExceptionWrapper = new ExceptionWrapper(new JUnitTestException("Test-Message"), true); 261 assertNotNull(lvExceptionWrapper.getExceptionPlaceHolder()); 262 } 263 264 }