package com.codeaffine.extras.jdt.internal.junitstatus; import static com.codeaffine.extras.jdt.internal.junitstatus.ActivateJUnitViewOnFailureAction.PREF_SHOW_ON_ERROR_ONLY; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.jdt.internal.junit.JUnitPreferencesConstants; import org.eclipse.jface.action.IAction; import org.junit.Before; import org.junit.Test; @SuppressWarnings("restriction") public class ActivateJUnitViewOnFailureActionTest { private IEclipsePreferences preferences; private ActivateJUnitViewOnFailureAction action; @Before public void setUp() { preferences = mock( IEclipsePreferences.class ); when( preferences.getBoolean( PREF_SHOW_ON_ERROR_ONLY, false ) ).thenReturn( true ); action = new ActivateJUnitViewOnFailureAction( preferences ); } @Test public void testPreferenceConstant() { assertThat( PREF_SHOW_ON_ERROR_ONLY ).isEqualTo( JUnitPreferencesConstants.SHOW_ON_ERROR_ONLY ); } @Test(expected=NullPointerException.class) public void testConstructorWithNullArgument() { new ActivateJUnitViewOnFailureAction( null ); } @Test public void testGetStyle() { int style = action.getStyle(); assertThat( style ).isEqualTo( IAction.AS_CHECK_BOX ); } @Test public void testGetText() { String text = action.getText(); assertThat( text ).isNotEmpty(); } @Test public void testInitialCheckState() { boolean checked = action.isChecked(); assertThat( checked ).isTrue(); } @Test public void testRun() { action.run(); verify( preferences ).putBoolean( PREF_SHOW_ON_ERROR_ONLY, false ); } }