1 package com.atlassian.plugin.osgi.factory.descriptor;
2
3 import com.atlassian.plugin.Permissions;
4 import com.atlassian.plugin.Plugin;
5 import com.google.common.collect.ImmutableSet;
6 import org.dom4j.DocumentHelper;
7 import org.dom4j.Element;
8 import org.junit.Test;
9
10 import static org.junit.Assert.assertFalse;
11 import static org.mockito.ArgumentMatchers.any;
12 import static org.mockito.ArgumentMatchers.anyString;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.when;
15
16 public class TestComponentModuleDescriptor {
17
18 @Test
19 public void testEnableDoesNotLoadClass() throws ClassNotFoundException {
20 ComponentModuleDescriptor desc = new ComponentModuleDescriptor();
21
22 Element e = DocumentHelper.createElement("foo");
23 e.addAttribute("key", "foo");
24 e.addAttribute("class", Foo.class.getName());
25
26 Plugin plugin = mock(Plugin.class);
27 when(plugin.getActivePermissions()).thenReturn(ImmutableSet.of(Permissions.EXECUTE_JAVA));
28 when(plugin.<Foo>loadClass(anyString(), any())).thenReturn(Foo.class);
29 desc.init(plugin, e);
30
31 Foo.called = false;
32 desc.enabled();
33 assertFalse(Foo.called);
34 }
35
36 public static class Foo {
37 static boolean called;
38
39 public Foo() {
40 called = true;
41 }
42 }
43 }