/*******************************************************************************
* 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.extension.machine.client.perspective.widgets.machine.appliance.server;
import com.google.gwt.user.client.ui.AcceptsOneWidget;
import org.eclipse.che.ide.extension.machine.client.inject.factories.EntityFactory;
import org.eclipse.che.ide.extension.machine.client.machine.Machine;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import java.util.List;
import static org.mockito.Mockito.verify;
/**
* @author Dmitry Shnurenko
*/
@RunWith(MockitoJUnitRunner.class)
public class ServerPresenterTest {
//constructor mocks
@Mock
private ServerView view;
@Mock
private EntityFactory entityFactory;
//additional mocks
@Mock
private Machine machine;
@Mock
private AcceptsOneWidget container;
@Captor
private ArgumentCaptor<List<Server>> serverListCaptor;
@InjectMocks
private ServerPresenter presenter;
@Test
public void serverShouldBeUpdated() {
presenter.updateInfo(machine);
verify(machine).getServersList();
verify(view).setServers(Matchers.<List<Server>>anyObject());
}
@Test
public void terminalShouldBeDisplayed() {
presenter.go(container);
verify(container).setWidget(view);
}
@Test
public void terminalVisibilityShouldBeChanged() {
presenter.setVisible(true);
verify(view).setVisible(true);
}
}