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
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 }