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