diff --git a/java/com.sap.sse.datamining.ui.test/.classpath b/java/com.sap.sse.datamining.ui.test/.classpath
index b8a36e0305f..341ee4d6e0b 100644
--- a/java/com.sap.sse.datamining.ui.test/.classpath
+++ b/java/com.sap.sse.datamining.ui.test/.classpath
@@ -2,11 +2,8 @@
-
-
-
-
-
+
+
diff --git a/java/com.sap.sse.datamining.ui.test/META-INF/MANIFEST.MF b/java/com.sap.sse.datamining.ui.test/META-INF/MANIFEST.MF
index ab8c4463c76..fa71dc3af04 100644
--- a/java/com.sap.sse.datamining.ui.test/META-INF/MANIFEST.MF
+++ b/java/com.sap.sse.datamining.ui.test/META-INF/MANIFEST.MF
@@ -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
diff --git a/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/TestSSEDataMiningUi.gwt.xml b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/TestSSEDataMiningUi.gwt.xml
index 55f40c1c01d..50bbcf4d464 100644
--- a/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/TestSSEDataMiningUi.gwt.xml
+++ b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/TestSSEDataMiningUi.gwt.xml
@@ -10,6 +10,7 @@
+
diff --git a/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyQueryResultDTO.java b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyQueryResultDTO.java
new file mode 100644
index 00000000000..1cb0945ee63
--- /dev/null
+++ b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyQueryResultDTO.java
@@ -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 extends QueryResultDTO {
+
+ private static final long serialVersionUID = 4163808455941696613L;
+
+ public DummyQueryResultDTO(Class resultType) {
+ super(QueryResultState.NORMAL, resultType, new HashMap<>());
+ }
+}
diff --git a/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyResultsPresenter.java b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyResultsPresenter.java
new file mode 100644
index 00000000000..be4f619a22d
--- /dev/null
+++ b/java/com.sap.sse.datamining.ui.test/src/com/sap/sse/datamining/ui/test/client/presentation/DummyResultsPresenter.java
@@ -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 {
+
+ private final DockLayoutPanel layoutPanel;
+ private final List executedResultsPresenter;
+
+ public DummyResultsPresenter(List executeResultsPresenter) {
+ super(null, null);
+ this.executedResultsPresenter = executeResultsPresenter;
+ layoutPanel = new DockLayoutPanel(Unit.PCT);
+ }
+
+ /**
+ * Stores this 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 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) {
+ }
+
+}
diff --git a/java/com.sap.sse.datamining.ui.test/test/com/sap/sse/datamining/ui/test/client/TestSSEDataMiningUi.java b/java/com.sap.sse.datamining.ui.test/test/com/sap/sse/datamining/ui/test/client/TestSSEDataMiningUi.java
index 0b6aa4f7d2c..c17bf0663a5 100644
--- a/java/com.sap.sse.datamining.ui.test/test/com/sap/sse/datamining/ui/test/client/TestSSEDataMiningUi.java
+++ b/java/com.sap.sse.datamining.ui.test/test/com/sap/sse/datamining/ui/test/client/TestSSEDataMiningUi.java
@@ -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 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);
}
}