/******************************************************************************* * Copyright (c) 2012-2017 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.plugin.debugger.ide.configuration; import org.eclipse.che.ide.api.action.ActionManager; import org.eclipse.che.ide.api.debug.DebugConfiguration; import org.eclipse.che.ide.api.debug.DebugConfigurationsManager; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; /** * @author Artem Zatsarynnyi */ @RunWith(MockitoJUnitRunner.class) public class DebugConfigurationsGroupTest { @Mock private ActionManager actionManager; @Mock private DebugConfigurationsManager debugConfigurationsManager; @Mock private DebugConfigurationActionFactory debugConfigurationActionFactory; @Mock private DebugConfiguration debugConfiguration; @InjectMocks private DebugConfigurationsGroup actionGroup; @Before public void setUp() { List<DebugConfiguration> debugConfigurations = new ArrayList<>(); debugConfigurations.add(debugConfiguration); when(debugConfigurationsManager.getConfigurations()).thenReturn(debugConfigurations); } @Test public void verifyActionConstruction() { verify(debugConfigurationsManager).addConfigurationsChangedListener(actionGroup); verify(debugConfigurationsManager).getConfigurations(); } @Test public void shouldFillActionsOnConfigurationAdded() { actionGroup.onConfigurationAdded(mock(DebugConfiguration.class)); verifyChildActionsFilled(); } @Test public void shouldFillActionsOnConfigurationRemoved() { actionGroup.onConfigurationRemoved(mock(DebugConfiguration.class)); verifyChildActionsFilled(); } private void verifyChildActionsFilled() { verify(debugConfigurationsManager, times(2)).getConfigurations(); verify(debugConfigurationActionFactory).createAction(debugConfiguration); assertEquals(1, actionGroup.getChildrenCount()); } }