1
2
3
4
5
6
7
8
9
10 package org.mule.test.tck;
11
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertFalse;
14 import static org.junit.Assert.assertNotNull;
15 import static org.junit.Assert.assertNull;
16 import static org.junit.Assert.assertTrue;
17
18 import java.io.IOException;
19 import java.util.Arrays;
20 import java.util.Collection;
21
22 import org.junit.Test;
23 import org.junit.runners.Parameterized.Parameters;
24 import org.mule.api.transport.Connector;
25 import org.mule.tck.AbstractServiceAndFlowTestCase;
26 import org.mule.tck.functional.CounterCallback;
27 import org.mule.tck.functional.FunctionalTestComponent;
28 import org.mule.tck.functional.ResponseWriterCallback;
29 import org.mule.tck.testmodels.mule.TestConnector;
30 import org.mule.transport.ConfigurableKeyedObjectPool;
31 import org.mule.transport.ConfigurableKeyedObjectPoolFactory;
32 import org.mule.transport.DefaultConfigurableKeyedObjectPool;
33 import org.mule.transport.DefaultConfigurableKeyedObjectPoolFactory;
34
35 public class MuleTestNamespaceTestCase extends AbstractServiceAndFlowTestCase
36 {
37 public MuleTestNamespaceTestCase(ConfigVariant variant, String configResources)
38 {
39 super(variant, configResources);
40 }
41
42 @Parameters
43 public static Collection<Object[]> parameters()
44 {
45 return Arrays.asList(new Object[][]{
46 {ConfigVariant.SERVICE, "test-namespace-config-service.xml"},
47 {ConfigVariant.FLOW, "test-namespace-config-flow.xml"}
48 });
49 }
50
51 @Test
52 public void testComponent1Config() throws Exception
53 {
54 Object object = getComponent("testService1");
55 assertNotNull(object);
56 assertTrue(object instanceof FunctionalTestComponent);
57 FunctionalTestComponent ftc = (FunctionalTestComponent) object;
58
59 assertFalse(ftc.isEnableMessageHistory());
60 assertFalse(ftc.isEnableNotifications());
61 assertNull(ftc.getAppendString());
62 assertEquals("Foo Bar Car Jar", ftc.getReturnData());
63 assertNotNull(ftc.getEventCallback());
64 assertTrue(ftc.getEventCallback() instanceof CounterCallback);
65 }
66
67 @Test
68 public void testComponent2Config() throws Exception
69 {
70 String testData = loadResourceAsString("test-data.txt");
71 Object object = getComponent("testService2");
72 assertNotNull(object);
73 assertTrue(object instanceof FunctionalTestComponent);
74 FunctionalTestComponent ftc = (FunctionalTestComponent) object;
75
76 assertTrue(ftc.isThrowException());
77 assertNotNull(ftc.getExceptionToThrow());
78 assertTrue(ftc.getExceptionToThrow().isAssignableFrom(IOException.class));
79 assertEquals("boom", ftc.getExceptionText());
80
81 assertEquals(testData, ftc.getReturnData());
82
83 assertTrue(ftc.isEnableMessageHistory());
84 assertTrue(ftc.isEnableNotifications());
85 assertNull(ftc.getAppendString());
86 assertNotNull(ftc.getEventCallback());
87 assertTrue(ftc.getEventCallback() instanceof ResponseWriterCallback);
88 }
89
90 @Test
91 public void testComponent3Config() throws Exception
92 {
93 Object object = getComponent("testService3");
94 assertNotNull(object);
95 assertTrue(object instanceof FunctionalTestComponent);
96 FunctionalTestComponent ftc = (FunctionalTestComponent) object;
97
98 assertFalse(ftc.isEnableMessageHistory());
99 assertTrue(ftc.isEnableNotifications());
100 assertEquals(" #[mule:context.serviceName]", ftc.getAppendString());
101 assertNull(ftc.getReturnData());
102 assertNull(ftc.getEventCallback());
103 }
104
105 @Test
106 public void testConnectorUsingDefaultDispatcherPoolFactory()
107 {
108 Connector connector = muleContext.getRegistry().lookupConnector("testConnectorWithDefaultFactory");
109
110 assertTrue(connector instanceof TestConnector);
111 TestConnector testConnector = (TestConnector) connector;
112 assertEquals(DefaultConfigurableKeyedObjectPoolFactory.class, testConnector.getDispatcherPoolFactory().getClass());
113 assertEquals(DefaultConfigurableKeyedObjectPool.class, testConnector.getDispatchers().getClass());
114 }
115
116 @Test
117 public void testConnectorUsingOverriddenDispatcherPoolFactory()
118 {
119 Connector connector = muleContext.getRegistry().lookupConnector("testConnectorWithOverriddenFactory");
120
121 assertTrue(connector instanceof TestConnector);
122 TestConnector testConnector = (TestConnector) connector;
123 assertEquals(StubDispatcherPoolFactory.class, testConnector.getDispatcherPoolFactory().getClass());
124 assertEquals(StubConfigurableKeyedObjectPool.class, testConnector.getDispatchers().getClass());
125 }
126
127 public static class StubConfigurableKeyedObjectPool extends DefaultConfigurableKeyedObjectPool
128 {
129
130 }
131
132 public static class StubDispatcherPoolFactory implements ConfigurableKeyedObjectPoolFactory
133 {
134 @Override
135 public ConfigurableKeyedObjectPool createObjectPool()
136 {
137 return new StubConfigurableKeyedObjectPool();
138 }
139 }
140 }