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  
18      public static void mockPluginAccessorReturning(PluginAccessor accessorMock, WebPanelRenderer... renderers)
19      {
20          class FakeWebPanelRendererModuleDescriptor extends WebPanelRendererModuleDescriptor
21          {
22              public FakeWebPanelRendererModuleDescriptor(String moduleClassName, ModuleFactory moduleClassFactory)
23              {
24                  super(moduleClassFactory);
25                  this.moduleClassName = moduleClassName;
26              }
27          }
28          int i = 0;
29          List<WebPanelRendererModuleDescriptor> descriptors = new ArrayList<WebPanelRendererModuleDescriptor>(renderers.length);
30          for (WebPanelRenderer webPanelRenderer : renderers)
31          {
32              ModuleFactory factory = mock(ModuleFactory.class);
33  
34              WebPanelRendererModuleDescriptor descriptor = new FakeWebPanelRendererModuleDescriptor("class" + i, factory);
35              when(factory.createModule("class" + i, descriptor)).thenReturn(webPanelRenderer);
36              descriptors.add(descriptor);
37              i++;
38          }
39          when(accessorMock.getEnabledModuleDescriptorsByClass(WebPanelRendererModuleDescriptor.class)).thenReturn(
40              ImmutableList.copyOf(descriptors));
41      }
42  }