Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authori0530612012-12-21 16:06:09 +0000
committeri0530612012-12-21 16:06:09 +0000
commitd8b0004e157f2b19d3d7b20378b76f0b96b380f9 (patch)
tree967703dbede99a5d48d570d823ed2056ed59277a
parentcd6f64fdfa11eac8d8aeb0b8a6ed4abb9887beb0 (diff)
downloadorg.eclipse.e4.search-d8b0004e157f2b19d3d7b20378b76f0b96b380f9.tar.gz
org.eclipse.e4.search-d8b0004e157f2b19d3d7b20378b76f0b96b380f9.tar.xz
org.eclipse.e4.search-d8b0004e157f2b19d3d7b20378b76f0b96b380f9.zip
[Bug 396928] presenter WIP
- edit and delete - refresh input on success
-rw-r--r--bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java31
-rw-r--r--bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsPresenter.java8
-rw-r--r--bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/xpparser/ISearchDestinationsConfiguratorDescription.java3
-rw-r--r--tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java6
-rw-r--r--tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java55
5 files changed, 87 insertions, 16 deletions
diff --git a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java
index 2372ed9..1195ae0 100644
--- a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java
+++ b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java
@@ -87,10 +87,17 @@ public class DestinationConfiguratorsPresenter implements IDestinationConfigurat
@Override
public void addDestination() {
- ISearchDestinationsConfiguratorDescription configDescription = getConfigDescription(destinationProviderId);
- ISearchDestinationConfigurator<?> configurator = configDescription.createConfigurator();
+ ContractChecker.nullCheckField(destinationProviderId, "destinationProviderId");
+ ISearchDestinationConfigurator<?> configurator = getConfigDescription(destinationProviderId).createConfigurator();
IStatus result = configurator.createDestination(view.getShell());
+ updateView(result);
+ }
+
+ private void updateView(IStatus result) {
view.setStatus(result);
+ if(result.isOK()) {
+ view.setInput(buildInput());
+ }
}
private ISearchDestinationsConfiguratorDescription getConfigDescription(String destinationProviderId) {
@@ -103,21 +110,29 @@ public class DestinationConfiguratorsPresenter implements IDestinationConfigurat
}
@Override
- public void editDestination() {
- // TODO Auto-generated method stub
+ public <T extends ISearchDestination> void editDestination() {
+ ContractChecker.nullCheckField(destinationProviderId, "destinationProviderId");
+ ContractChecker.nullCheckField(destination, "destination");
+
+ ISearchDestinationConfigurator<T> configurator = getConfigDescription(destinationProviderId).createConfigurator();
+ @SuppressWarnings("unchecked") IStatus result = configurator.editDestination(view.getShell(), (T)destination);
+ updateView(result);
}
@Override
- public void removeDestination() {
- // TODO Auto-generated method stub
+ public <T extends ISearchDestination> void removeDestination() {
+ ContractChecker.nullCheckField(destinationProviderId, "destinationProviderId");
+ ContractChecker.nullCheckField(destination, "destination");
+ ISearchDestinationConfigurator<T> configurator = getConfigDescription(destinationProviderId).createConfigurator();
+ @SuppressWarnings("unchecked") IStatus result = configurator.deleteDestination(view.getShell(), (T)destination);
+ updateView(result);
}
@Override
public void testDestination() {
- // TODO Auto-generated method stub
-
+ throw new RuntimeException("not implemented");
}
}
diff --git a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsPresenter.java b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsPresenter.java
index 9b54729..6a1cfc0 100644
--- a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsPresenter.java
+++ b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsPresenter.java
@@ -1,10 +1,12 @@
package org.eclipse.platform.discovery.destprefs.internal.prefpage.ui;
+import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
+
public interface IDestinationConfiguratorsPresenter {
public void selectionChanged(final DestinationConfiguratorSelection selection);
public void addDestination();
- public void editDestination();
- public void removeDestination();
- public void testDestination();
+ public <T extends ISearchDestination> void editDestination();
+ public <T extends ISearchDestination> void removeDestination();
+ public <T extends ISearchDestination> void testDestination();
public void setView(final IDestinationConfiguratorsView view);
}
diff --git a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/xpparser/ISearchDestinationsConfiguratorDescription.java b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/xpparser/ISearchDestinationsConfiguratorDescription.java
index d35b8f7..a81366b 100644
--- a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/xpparser/ISearchDestinationsConfiguratorDescription.java
+++ b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/xpparser/ISearchDestinationsConfiguratorDescription.java
@@ -11,6 +11,7 @@
package org.eclipse.platform.discovery.destprefs.internal.xpparser;
import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurator;
+import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
/**
* Wrapper interface for {@link ISearchDestinationConfigurator}
@@ -18,7 +19,7 @@ import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurat
*
*/
public interface ISearchDestinationsConfiguratorDescription {
- public ISearchDestinationConfigurator<?> createConfigurator();
+ public <T extends ISearchDestination> ISearchDestinationConfigurator<T> createConfigurator();
public String destinationProviderId();
public String destinationCategoryId();
}
diff --git a/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java b/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java
index 3213d2e..ce62534 100644
--- a/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java
+++ b/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java
@@ -36,11 +36,11 @@ public class SearchConfiguratorsFixture {
public final String CONFIGURATOR_2_FQNAME = "org.eclipse.platform.discovery.destprefs.configurator_2";
@Mock
- public ISearchDestinationConfigurator<?> configurator_1_1;
+ public ISearchDestinationConfigurator<ISearchDestination> configurator_1_1;
@Mock
- public ISearchDestinationConfigurator<?> configurator_1_2;
+ public ISearchDestinationConfigurator<ISearchDestination> configurator_1_2;
@Mock
- public ISearchDestinationConfigurator<?> configurator_2;
+ public ISearchDestinationConfigurator<ISearchDestination> configurator_2;
@Mock
public ISearchProviderConfiguration searchProviderConfiguration;
@Mock
diff --git a/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java b/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java
index be1c790..388b23d 100644
--- a/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java
+++ b/tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java
@@ -13,6 +13,7 @@ import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.Destination
import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.IDestinationConfiguratorsView;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.SearchDestinationsConfiguratorXPParser;
import org.eclipse.platform.discovery.destprefs.test.unit.SearchConfiguratorsFixture;
+import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
import org.eclipse.platform.discovery.runtime.internal.ISearchProviderConfiguration;
import org.eclipse.platform.discovery.testutils.utils.registry.ExtensionRegistryBuilder;
import org.eclipse.swt.widgets.Shell;
@@ -60,6 +61,7 @@ public class DestinationConfiguratorsPresenterTest {
private Collection<CategoryDestinationProviderPair> actual;
+ @SuppressWarnings("unchecked")
@Override
public boolean matches(Object item) {
actual = (Collection<CategoryDestinationProviderPair>)item;
@@ -95,7 +97,7 @@ public class DestinationConfiguratorsPresenterTest {
}
@Test
- public void destinationSelectedThenAdd() {
+ public void add() {
presenter.selectionChanged(new DestinationConfiguratorSelection(fixture.DEST_PROVIDER_CAT1_1, fixture.destination1));
ISearchDestinationConfigurator<?> expectedConfigurator = fixture.configurator_1_1;
@@ -106,6 +108,24 @@ public class DestinationConfiguratorsPresenterTest {
Mockito.verify(expectedConfigurator).createDestination(Mockito.same(viewShell));
Mockito.verify(view).setStatus(Mockito.same(result));
+ Mockito.verify(view, Mockito.times(2)).setInput(Mockito.argThat(matchesFixture()));
+
+ }
+
+ @Test
+ public void addNotOkDoesNotSetInput() {
+ presenter.selectionChanged(new DestinationConfiguratorSelection(fixture.DEST_PROVIDER_CAT1_1, fixture.destination1));
+
+ ISearchDestinationConfigurator<?> expectedConfigurator = fixture.configurator_1_1;
+ IStatus result = Status.CANCEL_STATUS;
+ Mockito.when(expectedConfigurator.createDestination(Mockito.same(viewShell))).thenReturn(result);
+
+ presenter.addDestination();
+
+ Mockito.verify(expectedConfigurator).createDestination(Mockito.same(viewShell));
+ Mockito.verify(view).setStatus(Mockito.same(result));
+ Mockito.verify(view, Mockito.times(1)).setInput(Mockito.argThat(matchesFixture()));
+
}
@Test
@@ -118,4 +138,37 @@ public class DestinationConfiguratorsPresenterTest {
Mockito.verify(view).setTestEnabled(Mockito.eq(false));
}
+
+ @Test
+ public void edit() {
+ presenter.selectionChanged(new DestinationConfiguratorSelection(fixture.DEST_PROVIDER_CAT1_1, fixture.destination1));
+
+ ISearchDestinationConfigurator<ISearchDestination> expectedConfigurator = fixture.configurator_1_1;
+ IStatus result = Status.OK_STATUS;
+ Mockito.when(expectedConfigurator.editDestination(Mockito.same(viewShell), Mockito.same(fixture.destination1))).thenReturn(result);
+
+ presenter.editDestination();
+
+ Mockito.verify(expectedConfigurator).editDestination(Mockito.same(viewShell), Mockito.same(fixture.destination1));
+ Mockito.verify(view).setStatus(Mockito.same(result));
+ Mockito.verify(view, Mockito.times(2)).setInput(Mockito.argThat(matchesFixture()));
+
+ }
+
+ @Test
+ public void remove() {
+ presenter.selectionChanged(new DestinationConfiguratorSelection(fixture.DEST_PROVIDER_CAT1_1, fixture.destination1));
+
+ ISearchDestinationConfigurator<ISearchDestination> expectedConfigurator = fixture.configurator_1_1;
+ IStatus result = Status.OK_STATUS;
+ Mockito.when(expectedConfigurator.deleteDestination(Mockito.same(viewShell), Mockito.same(fixture.destination1))).thenReturn(result);
+
+ presenter.removeDestination();
+
+ Mockito.verify(expectedConfigurator).deleteDestination(Mockito.same(viewShell), Mockito.same(fixture.destination1));
+ Mockito.verify(view).setStatus(Mockito.same(result));
+ Mockito.verify(view, Mockito.times(2)).setInput(Mockito.argThat(matchesFixture()));
+
+ }
+
}

Back to the top