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