/******************************************************************************* * Copyright (c) 2012-2016 Codenvy, S.A. * 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: * Codenvy, S.A. - initial API and implementation *******************************************************************************/ package org.eclipse.che.ide.ext.java.client.settings.property; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwtmockito.GwtMockitoTestRunner; import org.eclipse.che.ide.ext.java.client.settings.compiler.ErrorWarningsOptions; import org.eclipse.che.ide.ext.java.client.settings.property.PropertyWidget.ActionDelegate; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Matchers; import org.mockito.Mock; import static org.eclipse.che.ide.ext.java.client.settings.compiler.ErrorWarningsOptions.DEAD_CODE; import static org.eclipse.che.ide.ext.java.client.settings.property.PropertyWidgetImpl.ERROR; import static org.eclipse.che.ide.ext.java.client.settings.property.PropertyWidgetImpl.IGNORE; import static org.eclipse.che.ide.ext.java.client.settings.property.PropertyWidgetImpl.WARNING; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** * @author Dmitry Shnurenko */ @RunWith(GwtMockitoTestRunner.class) public class PropertyWidgetImplTest { private static final String SOME_TEXT = "someText"; @Mock private PropertyNameManager nameManager; @Mock private ActionDelegate delegate; @Mock private ChangeEvent event; private PropertyWidgetImpl widget; @Before public void setUp() { when(nameManager.getName(Matchers.<ErrorWarningsOptions>anyObject())).thenReturn(SOME_TEXT); widget = new PropertyWidgetImpl(nameManager, DEAD_CODE); widget.setDelegate(delegate); } @Test public void constructorShouldBeVerified() { verify(nameManager).getName(DEAD_CODE); verify(widget.title).setText(SOME_TEXT); verify(widget.property).addItem(IGNORE); verify(widget.property).addItem(WARNING); verify(widget.property).addItem(ERROR); } @Test public void propertyValueShouldBeSelected() { when(widget.property.getItemCount()).thenReturn(3); when(widget.property.getValue(1)).thenReturn(WARNING); widget.selectPropertyValue(WARNING); verify(widget.property).setItemSelected(1, true); } @Test public void onPropertyShouldBeChanged() { when(widget.property.getSelectedIndex()).thenReturn(1); when(widget.property.getValue(1)).thenReturn(SOME_TEXT); widget.onPropertyChanged(event); verify(delegate).onPropertyChanged(DEAD_CODE.toString(), SOME_TEXT); } @Test public void onPropertyShouldBeChangedAndValueShouldNotBeFound() { when(widget.property.getSelectedIndex()).thenReturn(-1); widget.onPropertyChanged(event); verify(delegate).onPropertyChanged(DEAD_CODE.toString(), ""); } }