package org.dashbuilder.client.widgets.dataset.editor; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwtmockito.GwtMockitoTestRunner; import org.dashbuilder.dataprovider.DataSetProviderType; import org.dashbuilder.dataset.client.DataSetClientServices; import org.dashbuilder.dataset.def.DataColumnDef; import org.dashbuilder.dataset.def.DataSetDef; import org.dashbuilder.displayer.DisplayerSettings; import org.dashbuilder.displayer.client.Displayer; import org.dashbuilder.displayer.client.DisplayerListener; import org.dashbuilder.displayer.client.DisplayerLocator; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import java.util.List; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.mockito.Matchers.any; import static org.mockito.Mockito.*; @RunWith(GwtMockitoTestRunner.class) public class DataSetDefPreviewTableTest { @Mock DisplayerLocator displayerLocator; @Mock DataSetClientServices dataSetClientServices; @Mock DataSetDefPreviewTable.View view; @Mock DataSetDef dataSetDef; private DataSetDefPreviewTable tested; final List<DataColumnDef> columnDefList = mock(List.class); final Displayer displayer = mock(Displayer.class); final DisplayerListener displayerListener = mock(DisplayerListener.class); final DisplayerSettings displayerSettings = mock(DisplayerSettings.class); @Before public void setup() throws Exception { when(dataSetDef.getUUID()).thenReturn("uuid1"); when(dataSetDef.getName()).thenReturn("name1"); when(dataSetDef.getProvider()).thenReturn(DataSetProviderType.BEAN); when(columnDefList.isEmpty()).thenReturn(true); when(dataSetDef.clone()).thenReturn(dataSetDef); tested = new DataSetDefPreviewTable(displayerLocator, dataSetClientServices, view); } @Test public void testInit() throws Exception { tested.init(); verify(view, times(1)).init(tested); verify(view, times(0)).setDisplayer(any(IsWidget.class)); verify(view, times(0)).clear(); } @Test public void testClear() throws Exception { tested.tableDisplayer = displayer; tested.clear(); assertNull(tested.tableDisplayer); verify(view, times(0)).init(tested); verify(view, times(0)).setDisplayer(any(IsWidget.class)); verify(view, times(1)).clear(); } // TODO - David: @Test - Do the test after DisplayerLocator#get() removed. public void testShow() throws Exception { when(displayerSettings.getRenderer()).thenReturn("gwtcharts"); tested.show(dataSetDef, columnDefList, displayerListener); assertNotNull(tested.tableDisplayer); verify(view, times(0)).init(tested); verify(view, times(1)).setDisplayer(any(IsWidget.class)); verify(view, times(1)).clear(); } @Test public void testDraw() throws Exception { tested.tableDisplayer = displayer; tested.draw(displayerListener); verify(displayer, times(1)).addListener(displayerListener); verify(displayer, times(1)).draw(); verify(view, times(1)).setDisplayer(any(IsWidget.class)); verify(view, times(0)).init(tested); verify(view, times(0)).clear(); } }