1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jdbc;
12
13 import org.mule.api.DefaultMuleException;
14 import org.mule.config.ExceptionHelper;
15 import org.mule.config.i18n.MessageFactory;
16 import org.mule.tck.AbstractMuleTestCase;
17 import org.mule.transport.jdbc.SQLExceptionReader;
18
19 import java.sql.SQLException;
20 import java.util.List;
21 import java.util.Map;
22
23 public class SqlExceptionReaderTestCase extends AbstractMuleTestCase
24 {
25
26
27
28
29 protected void doSetUp() throws Exception
30 {
31 ExceptionHelper.registerExceptionReader(new SQLExceptionReader());
32 }
33
34 public void testNestedExceptionRetreval() throws Exception
35 {
36 Exception testException = getException();
37 Throwable t = ExceptionHelper.getRootException(testException);
38 assertNotNull(t);
39 assertEquals("blah", t.getMessage());
40 assertNull(t.getCause());
41
42 t = ExceptionHelper.getRootMuleException(testException);
43 assertNotNull(t);
44 assertEquals("bar", t.getMessage());
45 assertNotNull(t.getCause());
46
47 List l = ExceptionHelper.getExceptionsAsList(testException);
48 assertEquals(4, l.size());
49
50 Map info = ExceptionHelper.getExceptionInfo(testException);
51 assertNotNull(info);
52 assertEquals(3, info.size());
53 assertNotNull(info.get("JavaDoc"));
54 assertEquals("1234", info.get("SQL Code"));
55 assertEquals("bad SQL state", info.get("SQL State"));
56 }
57
58 private Exception getException()
59 {
60
61 SQLException e = new SQLException("SQL error", "bad SQL state", 1234);
62 e.setNextException(new SQLException("blah"));
63
64 return new DefaultMuleException(MessageFactory.createStaticMessage("foo"), new DefaultMuleException(
65 MessageFactory.createStaticMessage("bar"), e));
66 }
67 }