package org.molgenis.ui.menu;
import org.molgenis.ui.MolgenisUiMenu;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static org.testng.Assert.*;
public class MenuItemToMolgenisUiMenuAdapterTest
{
@Test(expectedExceptions = IllegalArgumentException.class)
public void MenuItemToMolgenisUiMenuAdapter()
{
new MenuItemToMolgenisUiMenuAdapter(null, null);
}
@Test
public void containsItem_excludeSelf()
{
String itemId = "id";
MenuItem menu = new MenuItem();
menu.setId(itemId);
assertFalse(new MenuItemToMolgenisUiMenuAdapter(menu, menu).containsItem(itemId));
}
@Test
public void containsItem_child()
{
String itemId = "id";
MenuItem menu = new MenuItem();
menu.setType(MenuItemType.MENU);
MenuItem subMenu = new MenuItem();
subMenu.setId(itemId);
menu.setItems(Collections.singletonList(subMenu));
assertTrue(new MenuItemToMolgenisUiMenuAdapter(menu, menu).containsItem(itemId));
}
@Test
public void getActiveItem()
{
String itemId = "id";
MenuItem menu = new MenuItem();
menu.setType(MenuItemType.MENU);
MenuItem subMenu = new MenuItem();
subMenu.setId(itemId);
menu.setItems(Collections.singletonList(subMenu));
assertEquals(new MenuItemToMolgenisUiMenuAdapter(menu, menu).getActiveItem().getId(), itemId);
}
@Test
public void getBreadcrumb_menu()
{
String subSubMenuId = "subsubmenu";
MenuItem subSubMenu = new MenuItem();
subSubMenu.setId(subSubMenuId);
subSubMenu.setType(MenuItemType.MENU);
String subMenuId = "submenu";
MenuItem subMenu = new MenuItem();
subMenu.setId(subMenuId);
subMenu.setType(MenuItemType.MENU);
subMenu.setItems(Collections.singletonList(subSubMenu));
String menuId = "menu";
MenuItem menu = new MenuItem();
menu.setId(menuId);
menu.setType(MenuItemType.MENU);
menu.setItems(Collections.singletonList(subMenu));
List<MolgenisUiMenu> breadcrumb = new MenuItemToMolgenisUiMenuAdapter(menu, menu).getBreadcrumb();
assertEquals(breadcrumb.size(), 1);
assertEquals(breadcrumb.get(0).getId(), menuId);
}
@Test
public void getBreadcrumb_submenu()
{
String subMenuId = "submenu";
MenuItem subMenu = new MenuItem();
subMenu.setId(subMenuId);
subMenu.setType(MenuItemType.MENU);
String menuId = "menu";
MenuItem menu = new MenuItem();
menu.setId(menuId);
menu.setType(MenuItemType.MENU);
menu.setItems(Collections.singletonList(subMenu));
List<MolgenisUiMenu> breadcrumb = new MenuItemToMolgenisUiMenuAdapter(subMenu, menu).getBreadcrumb();
assertEquals(breadcrumb.size(), 2);
assertEquals(breadcrumb.get(0).getId(), menuId);
assertEquals(breadcrumb.get(1).getId(), subMenuId);
}
@Test
public void getBreadcrumb_subsubmenu()
{
String subSubMenuId = "subsubmenu";
MenuItem subSubMenu = new MenuItem();
subSubMenu.setId(subSubMenuId);
subSubMenu.setType(MenuItemType.MENU);
String subMenuId = "submenu";
MenuItem subMenu = new MenuItem();
subMenu.setId(subMenuId);
subMenu.setType(MenuItemType.MENU);
subMenu.setItems(Collections.singletonList(subSubMenu));
String menuId = "menu";
MenuItem menu = new MenuItem();
menu.setId(menuId);
menu.setType(MenuItemType.MENU);
menu.setItems(Collections.singletonList(subMenu));
List<MolgenisUiMenu> breadcrumb = new MenuItemToMolgenisUiMenuAdapter(subSubMenu, menu).getBreadcrumb();
assertEquals(breadcrumb.size(), 3);
assertEquals(breadcrumb.get(0).getId(), menuId);
assertEquals(breadcrumb.get(1).getId(), subMenuId);
assertEquals(breadcrumb.get(2).getId(), subSubMenuId);
}
@Test
public void getItems()
{
String subMenuId = "id0";
MenuItem menu = new MenuItem();
menu.setType(MenuItemType.MENU);
MenuItem subMenu = new MenuItem();
subMenu.setId(subMenuId);
MenuItem menuItem = new MenuItem();
String itemId = "id1";
menuItem.setId(itemId);
menu.setItems(Arrays.asList(subMenu, menuItem));
assertEquals(new MenuItemToMolgenisUiMenuAdapter(menu, menu).getItems().size(), 2);
}
}