1 package com.atlassian.plugin.osgi.factory;
2
3 import com.atlassian.plugin.Application;
4 import com.atlassian.plugin.ModuleDescriptor;
5 import com.atlassian.plugin.ModuleDescriptorFactory;
6 import com.atlassian.plugin.PluginParseException;
7 import com.google.common.collect.ImmutableSet;
8 import junit.framework.TestCase;
9 import org.dom4j.Element;
10 import org.dom4j.tree.DefaultElement;
11
12 import java.io.ByteArrayInputStream;
13
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.verify;
16 import static org.mockito.Mockito.when;
17
18 public class TestOsgiPluginXmlDescriptorParser extends TestCase {
19
20 public void testCreateModuleDescriptor() throws PluginParseException, IllegalAccessException, ClassNotFoundException, InstantiationException {
21 OsgiPluginXmlDescriptorParser parser = new OsgiPluginXmlDescriptorParser(new ByteArrayInputStream("<foo/>".getBytes()), ImmutableSet.<Application>of());
22
23 ModuleDescriptor desc = mock(ModuleDescriptor.class);
24 when(desc.getKey()).thenReturn("foo");
25 ModuleDescriptorFactory factory = mock(ModuleDescriptorFactory.class);
26 when(factory.getModuleDescriptor("foo")).thenReturn(desc);
27
28 OsgiPlugin plugin = mock(OsgiPlugin.class);
29 Element fooElement = new DefaultElement("foo");
30 fooElement.addAttribute("key", "bob");
31 assertNotNull(parser.createModuleDescriptor(plugin, fooElement, factory));
32 verify(plugin).addModuleDescriptorElement("foo", fooElement);
33 }
34 }