/**
* Copyright (c) 2014 - 2017 Frank Appel
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Frank Appel - initial API and implementation
*/
package com.codeaffine.eclipse.swt.widget.menu;
import static com.codeaffine.eclipse.swt.test.util.SWTEventHelper.trigger;
import static com.codeaffine.eclipse.swt.test.util.ShellHelper.createShell;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import com.codeaffine.eclipse.swt.test.util.DisplayHelper;
public class MenuItemFactoryTest {
private static final String LABEL = "label";
@Rule
public final DisplayHelper displayHelper = new DisplayHelper();
private MenuItemFactory menuItemFactory;
private Menu menu;
@Before
public void setUp() {
Shell shell = createShell( displayHelper );
menu = new Menu( shell );
menuItemFactory = new MenuItemFactory();
}
@Test
public void createPushItem() {
menuItemFactory.createPushItem( menu, LABEL, mock( Listener.class ) );
assertThat( menu.getItemCount() ).isEqualTo( 1 );
assertThat( menu.getItem( 0 ).getText() ).isEqualTo( LABEL );
}
@Test
public void selectPushItem() {
Listener listener = mock( Listener.class );
menuItemFactory.createPushItem( menu, LABEL, listener );
trigger( SWT.Selection ).on( menu.getItem( 0 ) );
verify( listener ).handleEvent( any( Event.class ) );
}
@Test
public void createSeparator() {
menuItemFactory.createSeparator( menu );
assertThat( menu.getItemCount() ).isEqualTo( 1 );
assertThat( menu.getItem( 0 ).getStyle() & SWT.SEPARATOR ).isEqualTo( SWT.SEPARATOR );
}
}