View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
6    */
7   package org.mule.test.tck;
8   
9   import org.mule.api.transport.Connector;
10  import org.mule.tck.functional.CounterCallback;
11  import org.mule.tck.functional.FunctionalTestComponent;
12  import org.mule.tck.functional.ResponseWriterCallback;
13  import org.mule.tck.junit4.FunctionalTestCase;
14  import org.mule.tck.testmodels.mule.TestConnector;
15  import org.mule.transport.ConfigurableKeyedObjectPool;
16  import org.mule.transport.ConfigurableKeyedObjectPoolFactory;
17  import org.mule.transport.DefaultConfigurableKeyedObjectPool;
18  import org.mule.transport.DefaultConfigurableKeyedObjectPoolFactory;
19  
20  import java.io.IOException;
21  
22  import org.junit.Test;
23  
24  import static org.junit.Assert.assertEquals;
25  import static org.junit.Assert.assertFalse;
26  import static org.junit.Assert.assertNotNull;
27  import static org.junit.Assert.assertNull;
28  import static org.junit.Assert.assertTrue;
29  
30  public class MuleTestNamespaceTestCase extends FunctionalTestCase
31  {
32  
33      public static class StubConfigurableKeyedObjectPool extends DefaultConfigurableKeyedObjectPool
34      {
35  
36      }
37  
38      public static class StubDispatcherPoolFactory implements ConfigurableKeyedObjectPoolFactory
39      {
40  
41          public ConfigurableKeyedObjectPool createObjectPool()
42          {
43              return new StubConfigurableKeyedObjectPool();
44          }
45      }
46  
47      @Override
48      protected String getConfigResources()
49      {
50          return "test-namespace-config.xml";
51      }
52  
53      @Test
54      public void testComponent1Config() throws Exception
55      {
56          Object object = getComponent("testService1");
57          assertNotNull(object);
58          assertTrue(object instanceof FunctionalTestComponent);
59          FunctionalTestComponent ftc = (FunctionalTestComponent) object;
60  
61          assertFalse(ftc.isEnableMessageHistory());
62          assertFalse(ftc.isEnableNotifications());
63          assertNull(ftc.getAppendString());
64          assertEquals("Foo Bar Car Jar", ftc.getReturnData());
65          assertNotNull(ftc.getEventCallback());
66          assertTrue(ftc.getEventCallback() instanceof CounterCallback);
67      }
68  
69      @Test
70      public void testComponent2Config() throws Exception
71      {
72          String testData = loadResourceAsString("test-data.txt");
73          Object object = getComponent("testService2");
74          assertNotNull(object);
75          assertTrue(object instanceof FunctionalTestComponent);
76          FunctionalTestComponent ftc = (FunctionalTestComponent) object;
77  
78          assertTrue(ftc.isThrowException());
79          assertNotNull(ftc.getExceptionToThrow());
80          assertTrue(ftc.getExceptionToThrow().isAssignableFrom(IOException.class));
81  
82          assertEquals(testData, ftc.getReturnData());
83  
84          assertTrue(ftc.isEnableMessageHistory());
85          assertTrue(ftc.isEnableNotifications());
86          assertNull(ftc.getAppendString());
87          assertNotNull(ftc.getEventCallback());
88          assertTrue(ftc.getEventCallback() instanceof ResponseWriterCallback);
89      }
90  
91      @Test
92      public void testComponent3Config() throws Exception
93      {
94          Object object = getComponent("testService3");
95          assertNotNull(object);
96          assertTrue(object instanceof FunctionalTestComponent);
97          FunctionalTestComponent ftc = (FunctionalTestComponent) object;
98  
99          assertFalse(ftc.isEnableMessageHistory());
100         assertTrue(ftc.isEnableNotifications());
101         assertEquals(" #[mule:context.serviceName]", ftc.getAppendString());
102         assertNull(ftc.getReturnData());
103         assertNull(ftc.getEventCallback());
104     }
105 
106     @Test
107     public void testConnectorUsingDefaultDispatcherPoolFactory()
108     {
109         Connector connector = muleContext.getRegistry().lookupConnector("testConnectorWithDefaultFactory");
110 
111         assertTrue(connector instanceof TestConnector);
112         TestConnector testConnector = (TestConnector) connector;
113         assertEquals(DefaultConfigurableKeyedObjectPoolFactory.class, testConnector.getDispatcherPoolFactory().getClass());
114         assertEquals(DefaultConfigurableKeyedObjectPool.class, testConnector.getDispatchers().getClass());
115     }
116 
117     @Test
118     public void testConnectorUsingOverriddenDispatcherPoolFactory()
119     {
120         Connector connector = muleContext.getRegistry().lookupConnector("testConnectorWithOverriddenFactory");
121 
122         assertTrue(connector instanceof TestConnector);
123         TestConnector testConnector = (TestConnector) connector;
124         assertEquals(StubDispatcherPoolFactory.class, testConnector.getDispatcherPoolFactory().getClass());
125         assertEquals(StubConfigurableKeyedObjectPool.class, testConnector.getDispatchers().getClass());
126     }
127 }