View Javadoc
1   package com.atlassian.plugin.manager;
2   
3   import com.atlassian.plugin.ModuleDescriptorFactory;
4   import com.atlassian.plugin.Plugin;
5   import com.atlassian.plugin.PluginRegistry;
6   import com.atlassian.plugin.classloader.PluginsClassLoader;
7   import com.atlassian.plugin.descriptors.UnrecognisedModuleDescriptor;
8   import com.atlassian.plugin.event.PluginEventManager;
9   import com.google.common.collect.ImmutableList;
10  import com.atlassian.plugin.scope.ScopeManager;
11  import org.junit.Rule;
12  import org.junit.Test;
13  import org.mockito.InjectMocks;
14  import org.mockito.Mock;
15  import org.mockito.junit.MockitoJUnit;
16  import org.mockito.junit.MockitoRule;
17  
18  import static org.hamcrest.MatcherAssert.assertThat;
19  import static org.hamcrest.Matchers.hasSize;
20  import static org.hamcrest.Matchers.instanceOf;
21  import static org.hamcrest.Matchers.is;
22  import static org.mockito.Mockito.when;
23  
24  public class TestProductPluginAccessorBase {
25      @Rule
26      public MockitoRule mockitoRule = MockitoJUnit.rule();
27  
28      @Mock
29      private PluginRegistry.ReadOnly pluginRegistry;
30      @Mock
31      private PluginPersistentStateStore pluginsPersistentStateStore;
32      @Mock
33      private ModuleDescriptorFactory moduleDescriptorFactory;
34      @Mock
35      private PluginEventManager pluginEventManager;
36      @Mock
37      private Plugin plugin;
38  
39      @InjectMocks
40      private ProductPluginAccessorBase pluginAccessor;
41  
42      @Mock
43      private ScopeManager scopeManager;
44  
45      @Test
46      public void classLoderIsPluginsClassLoader() {
47          ProductPluginAccessorBase pluginAccessor = new ProductPluginAccessorBase(pluginRegistry,
48                  pluginsPersistentStateStore, moduleDescriptorFactory, pluginEventManager, scopeManager);
49  
50          // needs to be a PluginsClassLoader to work properly with DPM
51          assertThat(pluginAccessor.getClassLoader(), is(instanceOf(PluginsClassLoader.class)));
52      }
53  
54      @Test
55      public void testUnrecognizedNotHidden() throws Exception {
56          when(pluginRegistry.getAll()).thenReturn(ImmutableList.of(plugin));
57          when(plugin.getModuleDescriptors()).thenReturn(ImmutableList.of(new UnrecognisedModuleDescriptor()));
58  
59          assertThat(pluginAccessor.getModuleDescriptors(d -> true), hasSize(1));
60      }
61  }