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 }