View Javadoc
1   package com.atlassian.plugin.web.model;
2   
3   import com.atlassian.plugin.PluginAccessor;
4   import com.atlassian.plugin.module.ModuleFactory;
5   import com.atlassian.plugin.web.descriptors.WebPanelRendererModuleDescriptor;
6   import com.atlassian.plugin.web.renderer.WebPanelRenderer;
7   import com.google.common.collect.ImmutableList;
8   
9   import java.util.ArrayList;
10  import java.util.List;
11  
12  import static org.mockito.Mockito.mock;
13  import static org.mockito.Mockito.when;
14  
15  public class WebPanelTestUtils {
16  
17      public static void mockPluginAccessorReturning(PluginAccessor accessorMock, WebPanelRenderer... renderers) {
18          class FakeWebPanelRendererModuleDescriptor extends WebPanelRendererModuleDescriptor {
19              public FakeWebPanelRendererModuleDescriptor(String moduleClassName, ModuleFactory moduleClassFactory) {
20                  super(moduleClassFactory);
21                  this.moduleClassName = moduleClassName;
22              }
23          }
24          int i = 0;
25          List<WebPanelRendererModuleDescriptor> descriptors = new ArrayList<WebPanelRendererModuleDescriptor>(renderers.length);
26          for (WebPanelRenderer webPanelRenderer : renderers) {
27              ModuleFactory factory = mock(ModuleFactory.class);
28  
29              WebPanelRendererModuleDescriptor descriptor = new FakeWebPanelRendererModuleDescriptor("class" + i, factory);
30              when(factory.createModule("class" + i, descriptor)).thenReturn(webPanelRenderer);
31              descriptors.add(descriptor);
32              i++;
33          }
34          when(accessorMock.getEnabledModuleDescriptorsByClass(WebPanelRendererModuleDescriptor.class)).thenReturn(
35                  ImmutableList.copyOf(descriptors));
36      }
37  }