package org.molgenis.ui.menu;
import org.molgenis.data.settings.AppSettings;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.Collections;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
public class MenuReaderServiceImplTest
{
@Test(expectedExceptions = NullPointerException.class)
public void MenuReaderServiceImpl()
{
new MenuReaderServiceImpl(null);
}
@Test
public void getMenu()
{
AppSettings appSettings = when(mock(AppSettings.class).getMenu()).thenReturn(
"{\n" + " \"type\": \"menu\",\n" + " \"id\": \"menu\",\n" + " \"label\": \"Menu\",\n"
+ " \"items\": [{\n" + " \"type\": \"plugin\",\n" + " \"id\": \"plugin0\",\n"
+ " \"label\": \"Plugin #0\",\n" + " \"params\": \"a=0&b=1\"\n" + " },\n"
+ " {\n" + " \"type\": \"menu\",\n" + " \"id\": \"submenu\",\n"
+ " \"label\": \"Submenu\",\n" + " \"items\": [{\n" + " \"type\": \"plugin\",\n"
+ " \"id\": \"plugin1\",\n" + " \"label\": \"Plugin #1\"\n" + " }]\n"
+ " }]\n" + "}").getMock();
MenuItem item0 = new MenuItem();
item0.setType(MenuItemType.PLUGIN);
item0.setId("plugin0");
item0.setLabel("Plugin #0");
item0.setParams("a=0&b=1");
MenuItem item1 = new MenuItem();
item1.setType(MenuItemType.PLUGIN);
item1.setId("plugin1");
item1.setLabel("Plugin #1");
MenuItem submenu = new MenuItem();
submenu.setType(MenuItemType.MENU);
submenu.setId("submenu");
submenu.setLabel("Submenu");
submenu.setItems(Collections.singletonList(item1));
Menu menu = new Menu();
menu.setId("menu");
menu.setLabel("Menu");
menu.setType(MenuItemType.MENU);
menu.setItems(Arrays.asList(item0, submenu));
assertEquals(new MenuReaderServiceImpl(appSettings).getMenu(), menu);
}
}