View Javadoc

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  }