View Javadoc

1   package com.atlassian.plugin.osgi.factory;
2   
3   import com.atlassian.plugin.ModuleDescriptorFactory;
4   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
5   import com.atlassian.plugin.descriptors.RequiresRestart;
6   import com.atlassian.plugin.descriptors.UnrecognisedModuleDescriptorRequiringRestart;
7   
8   import com.atlassian.plugin.module.ModuleFactory;
9   import org.junit.Test;
10  
11  import static org.junit.Assert.assertEquals;
12  import static org.junit.Assert.assertFalse;
13  import static org.junit.Assert.assertTrue;
14  import static org.mockito.Mockito.mock;
15  import static org.mockito.Mockito.when;
16  
17  public class TestUnavailableModuleDescriptorRequiringRestartFallbackFactory
18  {
19      @Test
20      public void doesNotInterceptForUnrecognisedModule() throws Exception
21      {
22          ModuleDescriptorFactory mdf = mock(ModuleDescriptorFactory.class);
23  
24          ModuleDescriptorFactory wrapper = new UnavailableModuleDescriptorRequiringRestartFallbackFactory(mdf);
25  
26          assertFalse(wrapper.hasModuleDescriptor("test"));
27          assertEquals(null, wrapper.getModuleDescriptor("test"));
28          assertEquals(null, wrapper.getModuleDescriptorClass("test"));
29      }
30  
31      @Test
32      public void returnsPlaceholderThatRequiresRestartWhenModuleRequiresRestart() throws Exception
33      {
34          ModuleDescriptorFactory mdf = mock(ModuleDescriptorFactory.class);
35          when(mdf.hasModuleDescriptor("test")).thenReturn(true);
36          when(mdf.getModuleDescriptorClass("test")).thenReturn((Class) RequiresRestartModuleDescriptor.class);
37  
38          ModuleDescriptorFactory wrapper = new UnavailableModuleDescriptorRequiringRestartFallbackFactory(mdf);
39  
40          assertTrue(wrapper.hasModuleDescriptor("test"));
41          assertEquals(UnrecognisedModuleDescriptorRequiringRestart.class, wrapper.getModuleDescriptor("test").getClass());
42          assertEquals(UnrecognisedModuleDescriptorRequiringRestart.class, wrapper.getModuleDescriptorClass("test"));
43      }
44  
45      @RequiresRestart
46      static class RequiresRestartModuleDescriptor extends AbstractModuleDescriptor<Void>
47      {
48          public RequiresRestartModuleDescriptor(ModuleFactory moduleFactory)
49          {
50              super(moduleFactory);
51          }
52  
53          @Override
54          public Void getModule()
55          {
56              return null;
57          }
58      }
59  }