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 }