package com.codeaffine.extras.launch.internal; import static org.assertj.core.api.Assertions.assertThat; import java.util.List; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.e4.ui.model.application.MApplication; import org.eclipse.e4.ui.model.application.ui.menu.MHandledMenuItem; import org.eclipse.e4.ui.model.application.ui.menu.MMenuContribution; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PlatformUI; import org.junit.Before; import org.junit.Test; import com.codeaffine.extras.launch.internal.dialog.OpenLaunchDialogHander; public class StartLaunchConfigMenuPDETest { private static final String MENU_ITEM_ID = "com.codeaffine.extras.launch.internal.StartLaunchConfigMenuItem"; private MApplication application; @Before public void setUp() { application = getEclipseContext().get( MApplication.class ); } @Test public void testStartLaunchConfigMenuContribution() { List<MMenuContribution> menuContributions = application.getMenuContributions(); MHandledMenuItem element = menuContributions.stream() .flatMap( menuContribution -> menuContribution.getChildren().stream() ) .filter( menuElement -> MENU_ITEM_ID.equals( menuElement.getElementId() ) ) .findFirst() .map( MHandledMenuItem.class::cast ) .orElse( null ); assertThat( element.getIconURI() ).endsWith( Images.START_LAUNCH_CONFIGURATION ); assertThat( element.getLabel() ).isNotEmpty(); assertThat( element.getCommand().getElementId() ).isEqualTo( OpenLaunchDialogHander.COMMAND_ID ); } @SuppressWarnings("cast") private static IEclipseContext getEclipseContext() { IWorkbenchWindow activeWorkbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); return ( IEclipseContext )activeWorkbenchWindow.getService( IEclipseContext.class ); } }