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 org.junit.Test;
9   
10  import static org.junit.Assert.assertEquals;
11  import static org.junit.Assert.assertFalse;
12  import static org.junit.Assert.assertTrue;
13  import static org.mockito.Mockito.mock;
14  import static org.mockito.Mockito.when;
15  
16  public class TestUnavailableModuleDescriptorRequiringRestartFallbackFactory
17  {
18      @Test
19      public void doesNotInterceptForUnrecognisedModule() throws Exception
20      {
21          ModuleDescriptorFactory mdf = mock(ModuleDescriptorFactory.class);
22  
23          ModuleDescriptorFactory wrapper = new UnavailableModuleDescriptorRequiringRestartFallbackFactory(mdf);
24  
25          assertFalse(wrapper.hasModuleDescriptor("test"));
26          assertEquals(null, wrapper.getModuleDescriptor("test"));
27          assertEquals(null, wrapper.getModuleDescriptorClass("test"));
28      }
29  
30      @Test
31      public void returnsPlaceholderThatRequiresRestartWhenModuleRequiresRestart() throws Exception
32      {
33          ModuleDescriptorFactory mdf = mock(ModuleDescriptorFactory.class);
34          when(mdf.hasModuleDescriptor("test")).thenReturn(true);
35          when(mdf.getModuleDescriptorClass("test")).thenReturn((Class) RequiresRestartModuleDescriptor.class);
36  
37          ModuleDescriptorFactory wrapper = new UnavailableModuleDescriptorRequiringRestartFallbackFactory(mdf);
38  
39          assertTrue(wrapper.hasModuleDescriptor("test"));
40          assertEquals(UnrecognisedModuleDescriptorRequiringRestart.class, wrapper.getModuleDescriptor("test").getClass());
41          assertEquals(UnrecognisedModuleDescriptorRequiringRestart.class, wrapper.getModuleDescriptorClass("test"));
42      }
43  
44      @RequiresRestart
45      static class RequiresRestartModuleDescriptor extends AbstractModuleDescriptor<Void>
46      {
47          @Override
48          public Void getModule()
49          {
50              return null;
51          }
52      }
53  }