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 {
15 private static final String PLUGIN_KEY = "com.atlassian.req.plugin.1";
16
17 private static final Set<String> REQ_PLUGINS = new HashSet<String>()
18 {{
19 add(PLUGIN_KEY);
20 add("com.atlassian.req.plugin.2");
21 add("com.atlassian.req.plugin.3");
22 }};
23
24 private static final Set<String> REQ_PLUGIN_MODULES = new HashSet<String>()
25 {{
26 add("com.atlassian.req.plugin.4:module1");
27 add("com.atlassian.req.plugin.4:module2");
28 add("com.atlassian.req.plugin.4:module3");
29 }};
30
31 private RequiredPluginProvider provider;
32
33 @Mock
34 private PluginAccessor pluginAccessor;
35
36 public void setUp()
37 {
38 MockitoAnnotations.initMocks(this);
39
40 provider = new RequiredPluginProvider()
41 {
42 public Set<String> getRequiredPluginKeys()
43 {
44 return REQ_PLUGINS;
45 }
46
47 public Set<String> getRequiredModuleKeys()
48 {
49 return REQ_PLUGIN_MODULES;
50 }
51 };
52 }
53
54 public void testValidate()
55 {
56 Mockito.when(pluginAccessor.isPluginEnabled(Mockito.anyString())).thenReturn(true);
57 Mockito.when(pluginAccessor.isPluginModuleEnabled(Mockito.anyString())).thenReturn(true);
58 RequiredPluginValidator validator = new DefaultRequiredPluginValidator(pluginAccessor, provider);
59 assertTrue(validator.validate().size() == 0);
60 }
61
62 public void testValidateFails()
63 {
64 Mockito.when(pluginAccessor.isPluginEnabled(Mockito.anyString())).thenReturn(true);
65 Mockito.when(pluginAccessor.isPluginEnabled(PLUGIN_KEY)).thenReturn(false);
66 Mockito.when(pluginAccessor.isPluginModuleEnabled(Mockito.anyString())).thenReturn(true);
67 RequiredPluginValidator validator = new DefaultRequiredPluginValidator(pluginAccessor, provider);
68 Collection<String> errors = validator.validate();
69 assertTrue(errors.size() == 1);
70 assertTrue(errors.contains(PLUGIN_KEY));
71 }
72 }