added test cases for the registration of ResultsPresenter and their correct call mechanism

This commit is contained in:
Maximilian Groß committed 2018-06-18 13:41:57 +02:00
1 parent 1205a02356
commit e6c00db523
6 files changed
+156 -7

No files matched your search

@@ -2,11 +2,8 @@
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="lib" path="C:/Development/gwt-2.8.2/gwt-user.jar"/>
<classpathentry kind="lib" path="C:/Development/gwt-2.8.2/gwt-dev.jar"/>
<classpathentry kind="lib" path="C:/Development/gwt-2.8.2/validation-api-1.0.0.GA.jar"/>
<classpathentry kind="lib" path="C:/Development/gwt-2.8.2/validation-api-1.0.0.GA-sources.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="war/WEB-INF/classes"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -7,7 +7,9 @@ Bundle-Vendor: SAP
Automatic-Module-Name: com.sap.sse.datamining.ui.test
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit,
com.google.gwt.user;bundle-version="2.8.2",
com.sap.sse.datamining.ui,
com.sap.sse.gwt;bundle-version="1.0.0",
slf4j.api;bundle-version="1.6.4",
com.sap.sse.common,
com.sap.sse.datamining.shared
@@ -10,6 +10,7 @@
<inherits name='com.google.gwt.user.User'/>
<!-- Other module inherits -->
<inherits name='com.sap.sse.datamining.SSEDataMining'/>
<!-- Specify the paths for translatable code -->
<source path='client'/>
@@ -0,0 +1,16 @@
package com.sap.sse.datamining.ui.test.client.presentation;
import java.io.Serializable;
import java.util.HashMap;
import com.sap.sse.datamining.shared.data.QueryResultState;
import com.sap.sse.datamining.shared.impl.dto.QueryResultDTO;
public class DummyQueryResultDTO<ResultType extends Serializable> extends QueryResultDTO<ResultType> {
private static final long serialVersionUID = 4163808455941696613L;
public DummyQueryResultDTO(Class<ResultType> resultType) {
super(QueryResultState.NORMAL, resultType, new HashMap<>());
}
}
@@ -0,0 +1,85 @@
package com.sap.sse.datamining.ui.test.client.presentation;
import java.util.List;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.DockLayoutPanel;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sse.common.settings.Settings;
import com.sap.sse.datamining.shared.impl.dto.QueryResultDTO;
import com.sap.sse.datamining.ui.client.presentation.AbstractResultsPresenter;
import com.sap.sse.datamining.ui.client.presentation.TabbedResultsPresenter;
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
/**
* Dummy class for testing the
* {@link TabbedResultsPresenter#registerResultPresenter(Class, com.sap.sse.datamining.ui.client.ResultsPresenter)}
* method. Therefore its {@link #showResult(QueryResultDTO)} method is overridden and simply stores a reference of this
* presenter instance.
*
* @author D064866
*
*/
public class DummyResultsPresenter extends AbstractResultsPresenter<Settings> {
private final DockLayoutPanel layoutPanel;
private final List<DummyResultsPresenter> executedResultsPresenter;
public DummyResultsPresenter(List<DummyResultsPresenter> executeResultsPresenter) {
super(null, null);
this.executedResultsPresenter = executeResultsPresenter;
layoutPanel = new DockLayoutPanel(Unit.PCT);
}
/**
* Stores <code>this</code> ResultsPresenter for test purposes.
*/
@Override
public void showResult(QueryResultDTO<?> result) {
executedResultsPresenter.add(this);
}
@Override
public String getId() {
return null;
}
@Override
public String getLocalizedShortName() {
return null;
}
@Override
public boolean hasSettings() {
return false;
}
@Override
public SettingsDialogComponent<Settings> getSettingsDialogComponent(Settings useTheseSettings) {
return null;
}
@Override
public Settings getSettings() {
return null;
}
@Override
public void updateSettings(Settings newSettings) {
}
@Override
public String getDependentCssClassName() {
return null;
}
@Override
protected Widget getPresentationWidget() {
return layoutPanel;
}
@Override
protected void internalShowResults(QueryResultDTO<?> result) {
}
}
@@ -1,6 +1,15 @@
package com.sap.sse.datamining.ui.test.client;
import java.util.ArrayList;
import java.util.List;
import com.google.gwt.junit.client.GWTTestCase;
import com.sap.sse.datamining.ui.client.presentation.MultiResultsPresenter;
import com.sap.sse.datamining.ui.client.presentation.PlainResultsPresenter;
import com.sap.sse.datamining.ui.client.presentation.ResultsChart;
import com.sap.sse.datamining.ui.client.presentation.TabbedResultsPresenter;
import com.sap.sse.datamining.ui.test.client.presentation.DummyQueryResultDTO;
import com.sap.sse.datamining.ui.test.client.presentation.DummyResultsPresenter;
/**
* GWT JUnit tests must extend GWTTestCase.
@@ -14,7 +23,46 @@ public class TestSSEDataMiningUi extends GWTTestCase {
return "com.sap.sse.datamining.ui.test.TestSSEDataMiningUiJUnit";
}
public void testRegisterResultsPresenter() {
assertTrue(true);
/**
* Tests the mechanism {@link TabbedResultsPresenter#registerResultPresenter(Class, ResultsPresenter)}.
*/
public void testAvoidDuplicateResultTypeRegistration() {
TabbedResultsPresenter presenter = new TabbedResultsPresenter(null, null, null);
presenter.registerResultPresenter(String.class, new PlainResultsPresenter(null, null));
presenter.registerResultPresenter(Double.class, new MultiResultsPresenter(null, null, null));
try {
presenter.registerResultPresenter(String.class, new ResultsChart(null, null, true, null));
fail();
} catch (IllegalStateException e) {
assertTrue(true);
}
}
/**
* Tests the mechanism {@link TabbedResultsPresenter#showResult(QueryResultDTO)}.
*/
public void testShowResultWithCorrectResultsPresenter() {
TabbedResultsPresenter presenter = new TabbedResultsPresenter(null, null, null);
List<DummyResultsPresenter> executedPresenter = new ArrayList<>();
DummyResultsPresenter stringResultsPresenter = new DummyResultsPresenter(executedPresenter);
DummyResultsPresenter doubleResultsPresenter = new DummyResultsPresenter(executedPresenter);
presenter.registerResultPresenter(String.class, stringResultsPresenter);
presenter.registerResultPresenter(Double.class, doubleResultsPresenter);
presenter.showResult(new DummyQueryResultDTO<>(String.class));
assertTrue(executedPresenter.size() == 1);
assertEquals(executedPresenter.get(0), stringResultsPresenter);
presenter.showResult(new DummyQueryResultDTO<>(Double.class));
assertTrue(executedPresenter.size() == 2);
assertEquals(executedPresenter.get(1), doubleResultsPresenter);
presenter.showResult(new DummyQueryResultDTO<>(Number.class));
assertTrue(executedPresenter.size() == 2);
assertEquals(executedPresenter.get(0), stringResultsPresenter);
assertEquals(executedPresenter.get(1), doubleResultsPresenter);
}
}