1
2
3
4
5
6
7
8
9
10
11 package org.mule.transport.stdio;
12
13 import org.mule.api.lifecycle.InitialisationException;
14 import org.mule.api.transport.Connector;
15 import org.mule.transport.AbstractConnectorTestCase;
16
17 import java.io.ByteArrayInputStream;
18 import java.io.InputStream;
19
20 import org.junit.Test;
21
22 import static org.junit.Assert.assertEquals;
23
24 public class PromptStdioConnectorTestCase extends AbstractConnectorTestCase
25 {
26 @Override
27 public String getTestEndpointURI()
28 {
29 return "stdio://System.out";
30 }
31
32 @Override
33 public Connector createConnector() throws Exception
34 {
35 Connector cnn = new PromptStdioConnector(muleContext);
36 cnn.setName("TestStdio");
37 return cnn;
38 }
39
40 @Override
41 public Object getValidMessage() throws Exception
42 {
43 return "Test Message";
44 }
45
46 @Test
47 public void testContextClassLoaderResourceLookup() throws InitialisationException
48 {
49 ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
50 PromptStdioConnector connector = new PromptStdioConnector(muleContext);
51 connector.setResourceBundle("dummy-messages");
52 connector.setPromptMessageCode("1");
53 connector.setOutputMessageCode("2");
54 try
55 {
56 Thread.currentThread().setContextClassLoader(new ContextClassLoaderTestClassLoader());
57 connector.doInitialise();
58 }
59 finally
60 {
61 Thread.currentThread().setContextClassLoader(originalClassLoader);
62 }
63
64 assertEquals("Test ContextClassLoader Prompt Message", connector.getPromptMessage());
65 assertEquals("Test ContextClassLoader Output Message", connector.getOutputMessage());
66 }
67
68 private class ContextClassLoaderTestClassLoader extends ClassLoader
69 {
70 public ContextClassLoaderTestClassLoader()
71 {
72 super();
73 }
74
75 @Override
76 public InputStream getResourceAsStream(String name)
77 {
78 String messages = "1=Test ContextClassLoader Prompt Message\n2=Test ContextClassLoader Output Message";
79 return new ByteArrayInputStream(messages.getBytes());
80 }
81 }
82 }