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;
8   
9   import org.mule.api.MuleContext;
10  import org.mule.api.config.ThreadingProfile;
11  import org.mule.config.DefaultMuleConfiguration;
12  import org.mule.context.DefaultMuleContextBuilder;
13  import org.mule.context.notification.ServerNotificationManager;
14  import org.mule.lifecycle.MuleContextLifecycleManager;
15  import org.mule.tck.junit4.AbstractMuleTestCase;
16  import org.mule.work.MuleWorkManager;
17  
18  import org.junit.Test;
19  
20  import static org.junit.Assert.assertEquals;
21  import static org.junit.Assert.assertNotNull;
22  
23  public class DefaultMuleContextBuilderTestCase extends AbstractMuleTestCase
24  {
25  
26      @Test
27      public void testBuildMuleContextDefault()
28      {
29          // Build
30          DefaultMuleContextBuilder builder = new DefaultMuleContextBuilder();
31          MuleContext muleContext = builder.buildMuleContext();
32  
33          // Assert
34          assertNotNull(muleContext);
35          assertEquals(DefaultMuleConfiguration.class, muleContext.getConfiguration().getClass());
36          assertEquals(MuleContextLifecycleManager.class, muleContext.getLifecycleManager().getClass());
37          assertEquals(ServerNotificationManager.class, muleContext.getNotificationManager().getClass());
38          assertEquals(MuleWorkManager.class, muleContext.getWorkManager().getClass());
39      }
40  
41      @Test
42      public void testBuildMuleContextCustom()
43      {
44          // Build
45          DefaultMuleContextBuilder builder = new DefaultMuleContextBuilder();
46          builder.setMuleConfiguration(new MyMuleConfiguration());
47          builder.setLifecycleManager(new MyLifeCycleManager());
48          builder.setNotificationManager(new MyServerNotificationManager());
49          builder.setWorkManager(new MyWorkManager(ThreadingProfile.DEFAULT_THREADING_PROFILE, "test"));
50          MuleContext muleContext = builder.buildMuleContext();
51  
52          // Assert
53          assertNotNull(muleContext);
54          assertEquals(MyMuleConfiguration.class, muleContext.getConfiguration().getClass());
55          assertEquals(MyLifeCycleManager.class, muleContext.getLifecycleManager().getClass());
56          assertEquals(MyServerNotificationManager.class, muleContext.getNotificationManager().getClass());
57          assertEquals(MyWorkManager.class, muleContext.getWorkManager().getClass());
58      }
59  
60      /**
61       * Override, we don't want a {@link MuleContext} created for this test case.
62       */
63      protected MuleContext createMuleContext() throws Exception
64      {
65          return null;
66      }
67  
68      static class MyLifeCycleManager extends MuleContextLifecycleManager
69      {
70      }
71  
72      static class MyMuleConfiguration extends DefaultMuleConfiguration
73      {
74      }
75  
76      static class MyServerNotificationManager extends ServerNotificationManager
77      {
78      }
79  
80      static class MyWorkManager extends MuleWorkManager
81      {
82          public MyWorkManager(ThreadingProfile profile, String name)
83          {
84              super(profile, name, 5000);
85          }
86      }
87  
88  }