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 }