1 package com.atlassian.plugin.metadata;
2
3 import com.atlassian.plugin.PluginAccessor;
4 import junit.framework.TestCase;
5 import org.mockito.Mock;
6 import org.mockito.Mockito;
7 import org.mockito.MockitoAnnotations;
8
9 import java.util.Collection;
10 import java.util.HashSet;
11 import java.util.Set;
12
13 public class TestRequiredPluginValidator extends TestCase {
14 private static final String PLUGIN_KEY = "com.atlassian.req.plugin.1";
15
16 private static final Set<String> REQ_PLUGINS = new HashSet<String>() {{
17 add(PLUGIN_KEY);
18 add("com.atlassian.req.plugin.2");
19 add("com.atlassian.req.plugin.3");
20 }};
21
22 private static final Set<String> REQ_PLUGIN_MODULES = new HashSet<String>() {{
23 add("com.atlassian.req.plugin.4:module1");
24 add("com.atlassian.req.plugin.4:module2");
25 add("com.atlassian.req.plugin.4:module3");
26 }};
27
28 private RequiredPluginProvider provider;
29
30 @Mock
31 private PluginAccessor pluginAccessor;
32
33 public void setUp() {
34 MockitoAnnotations.initMocks(this);
35
36 provider = new RequiredPluginProvider() {
37 public Set<String> getRequiredPluginKeys() {
38 return REQ_PLUGINS;
39 }
40
41 public Set<String> getRequiredModuleKeys() {
42 return REQ_PLUGIN_MODULES;
43 }
44 };
45 }
46
47 public void testValidate() {
48 Mockito.when(pluginAccessor.isPluginEnabled(Mockito.anyString())).thenReturn(true);
49 Mockito.when(pluginAccessor.isPluginModuleEnabled(Mockito.anyString())).thenReturn(true);
50 RequiredPluginValidator validator = new DefaultRequiredPluginValidator(pluginAccessor, provider);
51 assertTrue(validator.validate().size() == 0);
52 }
53
54 public void testValidateFails() {
55 Mockito.when(pluginAccessor.isPluginEnabled(Mockito.anyString())).thenReturn(true);
56 Mockito.when(pluginAccessor.isPluginEnabled(PLUGIN_KEY)).thenReturn(false);
57 Mockito.when(pluginAccessor.isPluginModuleEnabled(Mockito.anyString())).thenReturn(true);
58 RequiredPluginValidator validator = new DefaultRequiredPluginValidator(pluginAccessor, provider);
59 Collection<String> errors = validator.validate();
60 assertTrue(errors.size() == 1);
61 assertTrue(errors.contains(PLUGIN_KEY));
62 }
63 }