package org.dashbuilder.dataset.editor.client.screens;
import org.dashbuilder.dataset.client.DataSetClientServices;
import org.dashbuilder.dataset.def.DataSetDef;
import org.jboss.errai.common.client.api.RemoteCallback;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.uberfire.client.mvp.PlaceManager;
import org.uberfire.client.mvp.UberView;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
@RunWith(MockitoJUnitRunner.class)
public class DataSetAuthoringHomePresenterTest {
@Mock DataSetAuthoringHomePresenter.View view;
@Mock PlaceManager placeManager;
@Mock DataSetClientServices dataSetClientServices;
private DataSetAuthoringHomePresenter presenter;
@Before
public void setup() throws Exception {
final List<DataSetDef> dataSetDefList = mock(List.class);
when(dataSetDefList.size()).thenReturn(5);
doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocationOnMock) throws Throwable {
RemoteCallback<List<DataSetDef>> callback = (RemoteCallback<List<DataSetDef>>) invocationOnMock.getArguments()[0];
callback.callback(dataSetDefList);
return null;
}
}).when(dataSetClientServices).getPublicDataSetDefs(any(RemoteCallback.class));
// The presenter instance to test.
presenter = new DataSetAuthoringHomePresenter(view, placeManager, dataSetClientServices);
}
@Test
public void testInit() {
presenter.init();
verify(view, times(1)).setDataSetCount(5);
}
@Test
public void testGetView() {
final UberView<DataSetAuthoringHomePresenter> view = presenter.getView();
assertEquals(this.view, view);
}
@Test
public void testNewDataSet() {
presenter.newDataSet();
verify(placeManager, times(1)).goTo("DataSetDefWizard");
}
}