View Javadoc
1   package com.atlassian.plugin.factories;
2   
3   import com.atlassian.plugin.MockApplication;
4   import com.atlassian.plugin.ModuleDescriptorFactory;
5   import com.atlassian.plugin.Plugin;
6   import com.atlassian.plugin.PluginArtifact;
7   import com.atlassian.plugin.PluginException;
8   import com.atlassian.plugin.PluginParseException;
9   import com.atlassian.plugin.impl.XmlDynamicPlugin;
10  import org.dom4j.Element;
11  import org.junit.Before;
12  import org.junit.Rule;
13  import org.junit.Test;
14  import org.junit.rules.ExpectedException;
15  import org.junit.runner.RunWith;
16  import org.mockito.Mock;
17  import org.mockito.junit.MockitoJUnitRunner;
18  
19  import java.io.File;
20  
21  import static org.hamcrest.MatcherAssert.assertThat;
22  import static org.hamcrest.Matchers.containsString;
23  import static org.hamcrest.Matchers.nullValue;
24  import static org.mockito.Mockito.mock;
25  import static org.mockito.Mockito.when;
26  
27  @RunWith(MockitoJUnitRunner.class)
28  public class TestXmlDynamicPluginFactory {
29      @Rule
30      public final ExpectedException expectedException = ExpectedException.none();
31  
32      private XmlDynamicPluginFactory xmlDynamicPluginFactory;
33  
34      @Mock
35      private ModuleDescriptorFactory moduleDescriptorFactory;
36      @Mock
37      private Element module;
38      @Mock
39      private PluginArtifact pluginArtifact;
40  
41      @Before
42      public void before() {
43          xmlDynamicPluginFactory = new XmlDynamicPluginFactory(new MockApplication().setKey("foo"));
44      }
45  
46      @Test
47      public void createBadXml() {
48          when(pluginArtifact.toFile()).thenReturn(new File("sadfasdf"));
49  
50          expectedException.expect(PluginParseException.class);
51  
52          xmlDynamicPluginFactory.create(pluginArtifact, moduleDescriptorFactory);
53      }
54  
55      @Test
56      public void createModule() {
57          final XmlDynamicPlugin plugin = mock(XmlDynamicPlugin.class);
58  
59          expectedException.expect(PluginException.class);
60          expectedException.expectMessage(containsString("XmlDynamicPlugin"));
61  
62          xmlDynamicPluginFactory.createModule(plugin, module, moduleDescriptorFactory);
63      }
64  
65      @Test
66      public void creatModuleIncorrectPluginType() {
67          final Plugin plugin = mock(Plugin.class);
68  
69          assertThat(xmlDynamicPluginFactory.createModule(plugin, module, moduleDescriptorFactory), nullValue());
70      }
71  }