1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.jms;
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.jms.JmsExceptionReader;
18
19 import java.io.IOException;
20 import java.util.List;
21 import java.util.Map;
22
23 import javax.jms.JMSException;
24
25 public class JmsExceptionReaderTestCase extends AbstractMuleTestCase
26 {
27
28 protected void doSetUp() throws Exception
29 {
30 ExceptionHelper.registerExceptionReader(new JmsExceptionReader());
31 }
32
33 public void testNestedExceptionRetrieval() throws Exception
34 {
35 Exception testException = getException();
36 Throwable t = ExceptionHelper.getRootException(testException);
37 assertNotNull(t);
38 assertEquals("blah", t.getMessage());
39 assertNull(t.getCause());
40
41 t = ExceptionHelper.getRootMuleException(testException);
42 assertNotNull(t);
43 assertEquals("bar", t.getMessage());
44 assertNotNull(t.getCause());
45
46 List l = ExceptionHelper.getExceptionsAsList(testException);
47 assertEquals(4, l.size());
48
49 Map info = ExceptionHelper.getExceptionInfo(testException);
50 assertNotNull(info);
51 assertEquals(2, info.size());
52 assertNotNull(info.get("JavaDoc"));
53 assertEquals("1234", info.get("JMS Code"));
54 }
55
56 private Exception getException()
57 {
58
59 JMSException e = new JMSException("Jms error", "1234");
60 e.setLinkedException(new IOException("blah"));
61
62 return new DefaultMuleException(MessageFactory.createStaticMessage("foo"), new DefaultMuleException(
63 MessageFactory.createStaticMessage("bar"), e));
64 }
65
66 }