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