View Javadoc

1   package com.atlassian.plugin.web.model;
2   
3   import com.atlassian.plugin.PluginAccessor;
4   import com.atlassian.plugin.web.renderer.RendererException;
5   import com.atlassian.plugin.web.renderer.StaticWebPanelRenderer;
6   import com.atlassian.plugin.web.renderer.WebPanelRenderer;
7   import com.google.common.collect.ImmutableList;
8   import junit.framework.TestCase;
9   
10  import java.util.Collections;
11  import java.util.Map;
12  
13  import static org.mockito.Mockito.*;
14  
15  public class AbstractWebPanelTest extends TestCase
16  {
17      public void testStaticRenderer()
18      {
19          AbstractWebPanel panel = new AbstractWebPanel(null)
20          {
21              public String getHtml(Map<String, Object> context)
22              {
23                  final WebPanelRenderer renderer = getRenderer();
24                  assertEquals(renderer, StaticWebPanelRenderer.RENDERER);
25                  return null;
26              }
27          };
28  
29          panel.setResourceType(StaticWebPanelRenderer.RESOURCE_TYPE);
30          panel.getHtml(null);
31      }
32  
33      public void testUnsupportedRendererType()
34      {
35          final PluginAccessor accessorMock = mock(PluginAccessor.class);
36          when(accessorMock.getEnabledModulesByClass(WebPanelRenderer.class)).thenReturn(Collections.<WebPanelRenderer>emptyList());
37  
38          AbstractWebPanel panel = new AbstractWebPanel(accessorMock)
39          {
40              public String getHtml(Map<String, Object> context)
41              {
42                  try
43                  {
44                      getRenderer();
45                      fail();
46                  }
47                  catch (RendererException re)
48                  {
49                      // expected
50                  }
51                  return null;
52              }
53          };
54  
55          panel.setResourceType("unsupported-type");
56          panel.getHtml(null);
57      }
58  
59      public void testSupportedRendererType()
60      {
61          final PluginAccessor accessorMock = mock(PluginAccessor.class);
62          final WebPanelRenderer velocityRenderer = mock(WebPanelRenderer.class);
63          when(velocityRenderer.getResourceType()).thenReturn("velocity");
64          final WebPanelRenderer unsupportedRenderer = mock(WebPanelRenderer.class);
65          when(unsupportedRenderer.getResourceType()).thenReturn("unsupported-type");
66          when(accessorMock.getEnabledModulesByClass(WebPanelRenderer.class)).thenReturn(ImmutableList.of(unsupportedRenderer, velocityRenderer));
67  
68          AbstractWebPanel panel = new AbstractWebPanel(accessorMock)
69          {
70              public String getHtml(Map<String, Object> context)
71              {
72                  final WebPanelRenderer webPanelRenderer = getRenderer();
73                  assertNotNull(webPanelRenderer);
74                  assertEquals(velocityRenderer, webPanelRenderer);
75                  return null;
76              }
77          };
78  
79          panel.setResourceType("velocity");
80          panel.getHtml(null);
81      }
82  }