package org.molgenis.ui; import org.molgenis.security.core.MolgenisPermissionService; import org.molgenis.security.core.Permission; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.testng.Assert.*; public class XmlMolgenisUiPluginTest { private MolgenisPermissionService molgenisPermissionService; private Authentication authentication; private MolgenisUiMenu molgenisUiMenu; @BeforeMethod public void setUp() { molgenisPermissionService = mock(MolgenisPermissionService.class); authentication = mock(Authentication.class); SecurityContextHolder.getContext().setAuthentication(authentication); molgenisUiMenu = mock(MolgenisUiMenu.class); } @Test(expectedExceptions = IllegalArgumentException.class) public void XmlMolgenisUiPlugin() { new XmlMolgenisUiPlugin(null, null, null); } @Test public void getId() { String pluginId = "pluginId"; PluginType pluginType = new PluginType(); pluginType.setId(pluginId); XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(pluginType, molgenisUiMenu, molgenisPermissionService); assertEquals(xmlMolgenisUiPlugin.getId(), pluginId); } @Test public void getName() { String pluginId = "pluginId"; String pluginName = "pluginName"; PluginType pluginType = new PluginType(); pluginType.setName(pluginId); pluginType.setName(pluginName); XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(pluginType, molgenisUiMenu, molgenisPermissionService); assertEquals(xmlMolgenisUiPlugin.getName(), pluginName); } @Test public void getNameById() { String pluginId = "pluginId"; String pluginName = "pluginName"; PluginType pluginType = new PluginType(); pluginType.setId(pluginId); pluginType.setName(pluginName); XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(pluginType, molgenisUiMenu, molgenisPermissionService); assertEquals(xmlMolgenisUiPlugin.getName(), pluginName); } @Test public void getType() { XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(new PluginType(), molgenisUiMenu, molgenisPermissionService); assertEquals(xmlMolgenisUiPlugin.getType(), MolgenisUiMenuItemType.PLUGIN); } @Test public void getParentMenu() { assertEquals( new XmlMolgenisUiPlugin(new PluginType(), molgenisUiMenu, molgenisPermissionService).getParentMenu(), molgenisUiMenu); } @Test public void isAuthorized() { String id = "plugin1"; String type = "type"; PluginType pluginType = new PluginType(); pluginType.setName(type); pluginType.setId(id); when(molgenisPermissionService.hasPermissionOnPlugin(id, Permission.READ)).thenReturn(true); XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(pluginType, molgenisUiMenu, molgenisPermissionService); assertTrue(xmlMolgenisUiPlugin.isAuthorized()); } @Test public void isAuthorized_notAuthorized() { PluginType pluginType = new PluginType(); pluginType.setName("type_notauthorized"); XmlMolgenisUiPlugin xmlMolgenisUiPlugin = new XmlMolgenisUiPlugin(new PluginType(), molgenisUiMenu, molgenisPermissionService); assertFalse(xmlMolgenisUiPlugin.isAuthorized()); } }