1   /*
2    * $Id: ServiceDescriptorTestCase.java 11373 2008-03-15 05:03:10Z dfeist $
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.test.components;
12  
13  import org.mule.api.service.Service;
14  import org.mule.tck.FunctionalTestCase;
15  import org.mule.tck.testmodels.fruit.Orange;
16  
17  public class ServiceDescriptorTestCase extends FunctionalTestCase
18  {
19      protected String getConfigResources()
20      {
21          return "org/mule/test/components/service-factory-functional-test.xml";
22      }
23  
24      public void testGenericObjectFactory() throws Exception
25      {
26          Service c = muleContext.getRegistry().lookupService("orange1");
27          
28          Object service =  getComponent(c);
29          assertTrue("Service should be an Orange", service instanceof Orange);
30          // Default values
31          assertEquals(new Integer(10), ((Orange) service).getSegments());
32      }
33      
34      public void testGenericObjectFactoryWithProperties() throws Exception
35      {
36          Service c = muleContext.getRegistry().lookupService("orange2");
37  
38          // Create an orange
39          Object service =  getComponent(c);
40          assertTrue("Service should be an Orange", service instanceof Orange);
41          assertEquals(new Integer(8), ((Orange) service).getSegments());
42          assertEquals("Florida Sunny", ((Orange) service).getBrand());
43  
44          // Create another orange
45          service =  getComponent(c);
46          assertTrue("Service should be an Orange", service instanceof Orange);
47          assertEquals(new Integer(8), ((Orange) service).getSegments());
48          assertEquals("Florida Sunny", ((Orange) service).getBrand());
49      }
50      
51      public void testSingletonObjectFactory() throws Exception
52      {
53          Service c = muleContext.getRegistry().lookupService("orange3");
54          Object service =  getComponent(c);
55          assertTrue("Service should be an Orange", service instanceof Orange);
56          // Default values
57          assertEquals(new Integer(10), ((Orange) service).getSegments());
58      }
59      
60      public void testSpringSingleton() throws Exception
61      {
62          Service c = muleContext.getRegistry().lookupService("orange4");
63          Object service =  getComponent(c);
64          assertTrue("Service should be an Orange", service instanceof Orange);
65          // Default values
66          assertEquals(new Integer(10), ((Orange) service).getSegments());
67      }
68      
69      public void testSpringFactoryBean() throws Exception
70      {
71          Service c = muleContext.getRegistry().lookupService("orange5");
72          Object service =  getComponent(c);
73          assertNotNull(service);
74          assertTrue("Service should be an Orange but is: " + service.getClass(), service instanceof Orange);
75          assertEquals(new Integer(8), ((Orange) service).getSegments());
76          assertEquals("Florida Sunny", ((Orange) service).getBrand());
77      }
78  
79      public void testPojoAsFactoryBean() throws Exception
80      {
81          Service c = muleContext.getRegistry().lookupService("orange6");
82          Object service =  getComponent(c);
83          assertNotNull(service);
84          assertTrue("Service should be an Orange but is: " + service.getClass(), service instanceof Orange);
85          assertEquals("Florida Sunny", ((Orange) service).getBrand());
86      }
87  }