View Javadoc

1   package com.atlassian.plugin.osgi.factory;
2   
3   import junit.framework.TestCase;
4   import com.atlassian.plugin.PluginArtifact;
5   import com.atlassian.plugin.DefaultModuleDescriptorFactory;
6   import com.atlassian.plugin.hostcontainer.DefaultHostContainer;
7   import com.atlassian.plugin.impl.UnloadablePlugin;
8   import static org.mockito.Mockito.mock;
9   import static org.mockito.Mockito.when;
10  
11  import java.io.ByteArrayInputStream;
12  
13  public class TestUnloadableStaticPluginFactory extends TestCase
14  {
15      public void testCanCreate()
16      {
17          UnloadableStaticPluginFactory factory = new UnloadableStaticPluginFactory("foo.xml");
18          PluginArtifact artifact = mock(PluginArtifact.class);
19          when(artifact.getResourceAsStream("foo.xml")).thenReturn(new ByteArrayInputStream(
20                  "<atlassian-plugin key=\"foo\" />".getBytes()
21          ));
22          assertEquals("foo", factory.canCreate(artifact));
23      }
24  
25      public void testCanCreateWithOsgi()
26      {
27          UnloadableStaticPluginFactory factory = new UnloadableStaticPluginFactory("foo.xml");
28          PluginArtifact artifact = mock(PluginArtifact.class);
29          when(artifact.getResourceAsStream("foo.xml")).thenReturn(new ByteArrayInputStream(
30                  "<atlassian-plugin key=\"foo\" plugins-version=\"2\"/>".getBytes()
31          ));
32          assertEquals(null, factory.canCreate(artifact));
33      }
34  
35      public void testCanCreateWithNoDescriptor()
36      {
37          UnloadableStaticPluginFactory factory = new UnloadableStaticPluginFactory("foo.xml");
38          PluginArtifact artifact = mock(PluginArtifact.class);
39          when(artifact.getResourceAsStream("foo.xml")).thenReturn(null);
40          assertEquals(null, factory.canCreate(artifact));
41      }
42  
43      public void testCreate()
44      {
45          UnloadableStaticPluginFactory factory = new UnloadableStaticPluginFactory("foo.xml");
46          PluginArtifact artifact = mock(PluginArtifact.class);
47          when(artifact.getResourceAsStream("foo.xml")).thenReturn(new ByteArrayInputStream(
48                  "<atlassian-plugin key=\"foo\" />".getBytes()
49          ));
50          when(artifact.toString()).thenReturn("plugin.jar");
51          UnloadablePlugin plugin = (UnloadablePlugin) factory.create(artifact, new DefaultModuleDescriptorFactory(new DefaultHostContainer()));
52          assertNotNull(plugin);
53          assertEquals("foo", plugin.getKey());
54          assertTrue(plugin.getErrorText().contains("plugin.jar"));
55  
56      }
57  
58      public void testCreateWithNoKey()
59      {
60          UnloadableStaticPluginFactory factory = new UnloadableStaticPluginFactory("foo.xml");
61          PluginArtifact artifact = mock(PluginArtifact.class);
62          when(artifact.getResourceAsStream("foo.xml")).thenReturn(new ByteArrayInputStream(
63                  "<atlassian-plugin />".getBytes()
64          ));
65          when(artifact.toString()).thenReturn("plugin.jar");
66          UnloadablePlugin plugin = (UnloadablePlugin) factory.create(artifact, new DefaultModuleDescriptorFactory(new DefaultHostContainer()));
67          assertNotNull(plugin);
68          assertEquals(null, plugin.getKey());
69          assertTrue(plugin.getErrorText().contains("plugin.jar"));
70  
71      }
72  }