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 }