1   /*
2    * $Id: DefaultMuleContextBuilderTestCase.java 11371 2008-03-15 03:12:09Z tcarlson $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule;
12  
13  import org.mule.api.MuleContext;
14  import org.mule.api.config.ThreadingProfile;
15  import org.mule.config.DefaultMuleConfiguration;
16  import org.mule.context.DefaultMuleContextBuilder;
17  import org.mule.context.notification.ServerNotificationManager;
18  import org.mule.lifecycle.GenericLifecycleManager;
19  import org.mule.lifecycle.phases.MuleContextDisposePhase;
20  import org.mule.lifecycle.phases.MuleContextInitialisePhase;
21  import org.mule.lifecycle.phases.MuleContextStartPhase;
22  import org.mule.lifecycle.phases.MuleContextStopPhase;
23  import org.mule.tck.AbstractMuleTestCase;
24  import org.mule.work.MuleWorkManager;
25  
26  public class DefaultMuleContextBuilderTestCase extends AbstractMuleTestCase
27  {
28  
29      public void testBuildMuleContextDefault()
30      {
31          // Build
32          DefaultMuleContextBuilder builder = new DefaultMuleContextBuilder();
33          MuleContext muleContext = builder.buildMuleContext();
34  
35          // Assert
36          assertNotNull(muleContext);
37          assertEquals(DefaultMuleConfiguration.class, muleContext.getConfiguration().getClass());
38          assertEquals(GenericLifecycleManager.class, muleContext.getLifecycleManager().getClass());
39          assertEquals(MuleContextInitialisePhase.class, muleContext.getLifecycleManager()
40              .getLifecycles()
41              .toArray()[0].getClass());
42          assertEquals(MuleContextStartPhase.class,
43              muleContext.getLifecycleManager().getLifecycles().toArray()[1].getClass());
44          assertEquals(MuleContextStopPhase.class,
45              muleContext.getLifecycleManager().getLifecycles().toArray()[2].getClass());
46          assertEquals(MuleContextDisposePhase.class, muleContext.getLifecycleManager()
47              .getLifecycles()
48              .toArray()[3].getClass());
49  
50          assertEquals(ServerNotificationManager.class, muleContext.getNotificationManager().getClass());
51          assertEquals(MuleWorkManager.class, muleContext.getWorkManager().getClass());
52      }
53  
54      public void testBuildMuleContextCustom()
55      {
56          // Build
57          DefaultMuleContextBuilder builder = new DefaultMuleContextBuilder();
58          builder.setMuleConfiguration(new MyMuleConfiguration());
59          builder.setLifecycleManager(new MyLifeCycleManager());
60          builder.setNotificationManager(new MyServerNotificationManager());
61          builder.setWorkManager(new MyWorkManager(ThreadingProfile.DEFAULT_THREADING_PROFILE, "test"));
62          MuleContext muleContext = builder.buildMuleContext();
63  
64          // Assert
65          assertNotNull(muleContext);
66          assertEquals(MyMuleConfiguration.class, muleContext.getConfiguration().getClass());
67          assertEquals(MyLifeCycleManager.class, muleContext.getLifecycleManager().getClass());
68          assertEquals(MyServerNotificationManager.class, muleContext.getNotificationManager().getClass());
69          assertEquals(MyWorkManager.class, muleContext.getWorkManager().getClass());
70      }
71  
72      /**
73       * Override, we don't want a {@link MuleContext} created for this test case.
74       */
75      protected MuleContext createMuleContext() throws Exception
76      {
77          return null;
78      }
79  
80      static class MyLifeCycleManager extends GenericLifecycleManager
81      {
82      }
83  
84      static class MyMuleConfiguration extends DefaultMuleConfiguration
85      {
86      }
87  
88      static class MyServerNotificationManager extends ServerNotificationManager
89      {
90      }
91  
92      static class MyWorkManager extends MuleWorkManager
93      {
94          public MyWorkManager(ThreadingProfile profile, String name)
95          {
96              super(profile, name);
97          }
98      }
99  
100 }