View Javadoc
1   package com.atlassian.plugin.manager;
2   
3   import com.atlassian.plugin.ModuleDescriptorFactory;
4   import com.atlassian.plugin.PluginAccessor;
5   import com.atlassian.plugin.classloader.PluginsClassLoader;
6   import com.atlassian.plugin.event.PluginEventManager;
7   import org.junit.Rule;
8   import org.junit.Test;
9   import org.mockito.Mock;
10  import org.mockito.junit.MockitoJUnit;
11  import org.mockito.junit.MockitoRule;
12  
13  import static org.hamcrest.MatcherAssert.assertThat;
14  import static org.hamcrest.Matchers.is;
15  import static org.hamcrest.Matchers.isA;
16  import static org.mockito.Mockito.when;
17  
18  public class TestDefaultPluginManagerBuilder {
19      @Rule
20      public final MockitoRule mockitoRule = MockitoJUnit.rule();
21  
22      @Mock
23      private PluginAccessor pluginAccessor;
24      @Mock
25      private PluginsClassLoader pluginsClassLoader;
26      @Mock
27      private PluginPersistentStateStore pluginsPersistentStateStore;
28      @Mock
29      private ModuleDescriptorFactory moduleDescriptorFactory;
30      @Mock
31      private PluginEventManager pluginEventManager;
32  
33      @Test
34      public void pluginsClassLoaderFromPluginAccessor() {
35          when(pluginAccessor.getClassLoader()).thenReturn(pluginsClassLoader);
36  
37          DefaultPluginManager dpm = new DefaultPluginManager(DefaultPluginManager.newBuilder()
38                  .withPluginAccessor(pluginAccessor)
39                  .withStore(pluginsPersistentStateStore)
40                  .withModuleDescriptorFactory(moduleDescriptorFactory)
41                  .withPluginEventManager(pluginEventManager)
42          );
43  
44          assertThat(dpm.getClassLoader(), is(pluginsClassLoader));
45      }
46  
47      @Test
48      public void pluginsClassLoaderCreatedInConstructor() {
49          when(pluginAccessor.getClassLoader()).thenReturn(pluginsClassLoader);
50  
51          DefaultPluginManager dpm = new DefaultPluginManager(DefaultPluginManager.newBuilder()
52                  .withStore(pluginsPersistentStateStore)
53                  .withModuleDescriptorFactory(moduleDescriptorFactory)
54                  .withPluginEventManager(pluginEventManager)
55          );
56  
57          assertThat(dpm.getClassLoader(), isA(PluginsClassLoader.class));
58      }
59  }