View Javadoc

1   package com.atlassian.plugin.module;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import com.atlassian.plugin.Plugin;
5   import com.atlassian.plugin.hostcontainer.HostContainer;
6   import junit.framework.TestCase;
7   
8   import static org.mockito.Matchers.anyObject;
9   import static org.mockito.Matchers.eq;
10  import static org.mockito.Mockito.mock;
11  import static org.mockito.Mockito.when;
12  
13  public class TestClassModuleFactory extends TestCase
14  {
15      ModuleFactory moduleCreator;
16      private HostContainer hostContainer;
17  
18      @Override
19      protected void setUp() throws Exception
20      {
21          hostContainer = mock(HostContainer.class);
22          moduleCreator = new ClassPrefixModuleFactory(hostContainer);
23      }
24  
25      @Override
26      protected void tearDown() throws Exception
27      {
28          super.tearDown();
29      }
30  
31      public void testCreateBeanUsingHostContainer() throws Exception
32      {
33          final ModuleDescriptor<Object> moduleDescriptor = mock(ModuleDescriptor.class);
34          final Plugin plugin = mock(Plugin.class);
35          when(plugin.<Object>loadClass(eq("myBean"), (Class)anyObject())).thenReturn(Object.class);
36  
37          when(moduleDescriptor.getPlugin()).thenReturn(plugin);
38          when(moduleDescriptor.getModuleClass()).thenReturn(Object.class);
39          final Object object = new Object();
40          when(hostContainer.create(Object.class)).thenReturn(object);
41  
42          final Object bean = moduleCreator.createModule("myBean", moduleDescriptor);
43          assertEquals(object, bean);
44      }
45  
46      public void testCreateBeanUsingPluginContainer() throws Exception
47      {
48          final ModuleDescriptor<Object> moduleDescriptor = mock(ModuleDescriptor.class);
49          final ContainerAccessor containerAccessor = mock(ContainerAccessor.class);
50          final Plugin plugin = new MockContainerManagedPlugin(containerAccessor);
51  
52          when(moduleDescriptor.getPlugin()).thenReturn(plugin);
53          final Object beanObject = new Object();
54          when(containerAccessor.createBean(Object.class)).thenReturn(beanObject);
55          final Object bean = moduleCreator.createModule("java.lang.Object", moduleDescriptor);
56          assertEquals(beanObject, bean);
57      }
58  
59  }