Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authori0530612012-12-20 17:35:30 +0000
committeri0530612012-12-20 17:35:30 +0000
commita1399fce9b54cb2de5119df2ba744e1883a7b5d9 (patch)
treeb9b9c1db0b32aeee77f58f99ab4a8d9d5e04d306
parent6aa06a2676ee7b5c01ad104ae64469599cab05da (diff)
downloadorg.eclipse.e4.search-a1399fce9b54cb2de5119df2ba744e1883a7b5d9.tar.gz
org.eclipse.e4.search-a1399fce9b54cb2de5119df2ba744e1883a7b5d9.tar.xz
org.eclipse.e4.search-a1399fce9b54cb2de5119df2ba744e1883a7b5d9.zip
[Bug 396928] presenter in progressI20121220-2200
-rw-r--r--bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/DestinationConfiguratorsPresenter.java19
-rw-r--r--bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsView.java2
-rw-r--r--tests/org.eclipse.platform.discovery.destprefs.test.unit/META-INF/MANIFEST.MF4
-rw-r--r--tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/SearchConfiguratorsFixture.java21
-rw-r--r--tests/org.eclipse.platform.discovery.destprefs.test.unit/src/org/eclipse/platform/discovery/destprefs/test/unit/prefpage/DestinationConfiguratorsPresenterTest.java65
5 files changed, 72 insertions, 39 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 e68f226..01bd079 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
@@ -1,5 +1,8 @@
package org.eclipse.platform.discovery.destprefs.internal.prefpage.ui;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurator;
+import org.eclipse.platform.discovery.destprefs.internal.xpparser.ISearchDestinationsConfiguratorDescription;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.SearchDestinationsConfiguratorXPParser;
import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
@@ -19,7 +22,6 @@ public class DestinationConfiguratorsPresenter implements IDestinationConfigurat
@Override
public void destinationSelected(ISearchDestination destination) {
-
view.setAddEnabled(true);
view.setEditEnabled(true);
view.setRemoveEnabled(true);
@@ -33,8 +35,19 @@ public class DestinationConfiguratorsPresenter implements IDestinationConfigurat
@Override
public void addDestination(String destinationProviderId) {
- // TODO Auto-generated method stub
-
+ ISearchDestinationsConfiguratorDescription configDescription = getConfigDescription(destinationProviderId);
+ ISearchDestinationConfigurator<?> configurator = configDescription.createConfigurator();
+ IStatus result = configurator.createDestination(view.getShell());
+ view.setStatus(result);
+ }
+
+ private ISearchDestinationsConfiguratorDescription getConfigDescription(String destinationProviderId) {
+ for(ISearchDestinationsConfiguratorDescription desc: configuratorParser.readContributions()) {
+ if(desc.destinationProviderId().equals(destinationProviderId)) {
+ return desc;
+ }
+ }
+ throw new RuntimeException("cannot find destination configurator for dest provider id:"+destinationProviderId);
}
@Override
diff --git a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsView.java b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsView.java
index b6db455..ecbecf2 100644
--- a/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsView.java
+++ b/bundles/org.eclipse.platform.discovery.destprefs/src/org/eclipse/platform/discovery/destprefs/internal/prefpage/ui/IDestinationConfiguratorsView.java
@@ -5,6 +5,7 @@ import java.util.Map;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
+import org.eclipse.swt.widgets.Shell;
public interface IDestinationConfiguratorsView {
public void showConfigurators(final Map<String, List<ISearchDestination>> destinations);
@@ -13,4 +14,5 @@ public interface IDestinationConfiguratorsView {
public void setEditEnabled(final boolean enabled);
public void setRemoveEnabled(final boolean enabled);
public void setTestEnabled(final boolean enabled);
+ public Shell getShell();
}
diff --git a/tests/org.eclipse.platform.discovery.destprefs.test.unit/META-INF/MANIFEST.MF b/tests/org.eclipse.platform.discovery.destprefs.test.unit/META-INF/MANIFEST.MF
index 92e0709..71666c9 100644
--- a/tests/org.eclipse.platform.discovery.destprefs.test.unit/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.platform.discovery.destprefs.test.unit/META-INF/MANIFEST.MF
@@ -14,4 +14,6 @@ Require-Bundle: org.junit,
org.hamcrest,
org.eclipse.platform.discovery.runtime,
org.eclipse.core.runtime,
- org.eclipse.platform.discovery.util
+ org.eclipse.platform.discovery.util,
+ org.eclipse.ui
+
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 8841ad3..748f648 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
@@ -1,11 +1,14 @@
package org.eclipse.platform.discovery.destprefs.test.unit;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurator;
import org.eclipse.platform.discovery.runtime.api.IDestinationsProvider;
+import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
import org.eclipse.platform.discovery.runtime.internal.ISearchProviderConfiguration;
import org.eclipse.platform.discovery.runtime.internal.model.descriptions.IDestinationCategoryDescription;
import org.eclipse.platform.discovery.runtime.internal.model.descriptions.IDestinationsProviderDescription;
@@ -40,20 +43,26 @@ public class SearchConfiguratorsFixture {
public ISearchDestinationConfigurator<?> configurator_2;
@Mock
public ISearchProviderConfiguration searchProviderConfiguration;
+ @Mock
+ public IDestinationsProvider destprovider1;
+ @Mock
+ public ISearchDestination destination1;
public void setup(ExtensionRegistryBuilder registryBuilder) {
MockitoAnnotations.initMocks(this);
setupSearchProviderConfiguration();
+
+ setupDestProvider();
registryBuilder.addDestinationCategory(CATEGORY_1, CATEGORY_1);
registryBuilder.addDestinationCategory(CATEGORY_2, CATEGORY_2);
registryBuilder
- .addDestinationsProvider(DEST_PROVIDER_CAT1_1, CATEGORY_1, null, "someprovider_1_1", Mockito.mock(IDestinationsProvider.class));
+ .addDestinationsProvider(DEST_PROVIDER_CAT1_1, CATEGORY_1, null, "someprovider_1_1", destprovider1);
registryBuilder
- .addDestinationsProvider(DEST_PROVIDER_CAT1_2, CATEGORY_1, null, "someprovider_1_2", Mockito.mock(IDestinationsProvider.class));
- registryBuilder.addDestinationsProvider(DEST_PROVIDER_CAT2, CATEGORY_2, null, "someprovider2", Mockito.mock(IDestinationsProvider.class));
+ .addDestinationsProvider(DEST_PROVIDER_CAT1_2, CATEGORY_1, null, "someprovider_1_2", destprovider1);
+ registryBuilder.addDestinationsProvider(DEST_PROVIDER_CAT2, CATEGORY_2, null, "someprovider2", destprovider1);
try {
registryBuilder.addSearchDestinationsConfigurator(CONFIGURATOR_1_1_ID, DEST_PROVIDER_CAT1_1, CONFIGURATOR_1_1_FQNAME, configurator_1_1);
@@ -64,6 +73,12 @@ public class SearchConfiguratorsFixture {
}
}
+ private void setupDestProvider() {
+ Set<ISearchDestination> destinations = new HashSet<ISearchDestination>();
+ destinations.add(destination1);
+ Mockito.when(destprovider1.getSearchDestinations()).thenReturn(destinations);
+ }
+
private void setupSearchProviderConfiguration() {
final List<IDestinationCategoryDescription> allDestinationCategories = destinationCategories();
Mockito.stub(searchProviderConfiguration.getDestinationCategories()).toReturn(allDestinationCategories);
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 92bbb12..6d4c450 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
@@ -1,15 +1,17 @@
package org.eclipse.platform.discovery.destprefs.test.unit.prefpage;
-import java.util.HashSet;
-import java.util.Set;
-
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.platform.discovery.destprefs.api.ISearchDestinationConfigurator;
import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.DestinationConfiguratorsPresenter;
import org.eclipse.platform.discovery.destprefs.internal.prefpage.ui.IDestinationConfiguratorsView;
import org.eclipse.platform.discovery.destprefs.internal.xpparser.SearchDestinationsConfiguratorXPParser;
-import org.eclipse.platform.discovery.runtime.api.IDestinationsProvider;
-import org.eclipse.platform.discovery.runtime.api.ISearchDestination;
+import org.eclipse.platform.discovery.destprefs.test.unit.SearchConfiguratorsFixture;
+import org.eclipse.platform.discovery.runtime.internal.ISearchProviderConfiguration;
import org.eclipse.platform.discovery.testutils.utils.registry.ExtensionRegistryBuilder;
+import org.eclipse.swt.widgets.Shell;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -17,51 +19,50 @@ import org.mockito.MockitoAnnotations;
public class DestinationConfiguratorsPresenterTest {
- private static final String DEST_PROV_ID_1 = "prov1";
private ExtensionRegistryBuilder registryBuilder;
+ @Mock private IDestinationConfiguratorsView view;
+ @Mock private Shell viewShell;
+ private SearchConfiguratorsFixture fixture;
+ private SearchDestinationsConfiguratorXPParser parser;
+
private DestinationConfiguratorsPresenter presenter;
- @Mock
- private IDestinationConfiguratorsView view;
- private ISearchDestination dest1;
-
+
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
registryBuilder = new ExtensionRegistryBuilder();
-
- registryBuilder.addDestinationCategory("cat1", "cat1");
-
- IDestinationsProvider prov1 = Mockito.mock(IDestinationsProvider.class);
- registryBuilder.addDestinationsProvider(DEST_PROV_ID_1, "cat1", null, prov1.getClass().getCanonicalName(), prov1);
- Set<ISearchDestination> destinations1 = new HashSet<ISearchDestination>();
- dest1 = Mockito.mock(ISearchDestination.class);
- destinations1.add(dest1);
-
- Mockito.when(prov1.getSearchDestinations()).thenReturn(destinations1);
-
- SearchDestinationsConfiguratorXPParser parser = new SearchDestinationsConfiguratorXPParser(registryBuilder.getRegistry());
+ fixture = new SearchConfiguratorsFixture();
+ fixture.setup(registryBuilder);
+ parser = new SearchDestinationsConfiguratorXPParser( registryBuilder.getRegistry() ) {
+ @Override
+ protected ISearchProviderConfiguration searchProviderConfiguration() {
+ return fixture.searchProviderConfiguration;
+ }
+ };
presenter = new DestinationConfiguratorsPresenter(parser);
+
+ Mockito.when(view.getShell()).thenReturn(viewShell);
presenter.setView(view);
}
@Test
public void destinationSelectedTogglesEnablement() {
- presenter.destinationSelected(dest1);
+ presenter.destinationSelected(fixture.destination1);
Mockito.verify(view).setAddEnabled(Mockito.eq(true));
Mockito.verify(view).setEditEnabled(Mockito.eq(true));
Mockito.verify(view).setRemoveEnabled(Mockito.eq(true));
}
- @Test
+
+ @Ignore @Test
public void destinationSelectedThenAdd() {
- presenter.destinationSelected(dest1);
- presenter.addDestination(DEST_PROV_ID_1);
-
-
+ presenter.destinationSelected(fixture.destination1);
+ presenter.addDestination(fixture.DEST_PROVIDER_CAT1_1);
+ IStatus result = Status.OK_STATUS;
-
- Mockito.verify(view).setAddEnabled(Mockito.eq(true));
- Mockito.verify(view).setEditEnabled(Mockito.eq(true));
- Mockito.verify(view).setRemoveEnabled(Mockito.eq(true));
+ ISearchDestinationConfigurator<?> expectedConfigurator = fixture.configurator_1_1;
+ Mockito.when(expectedConfigurator.createDestination(Mockito.same(viewShell))).thenReturn(result);
+ Mockito.verify(expectedConfigurator).createDestination(Mockito.same(viewShell));
+ Mockito.verify(view).setStatus(Mockito.same(result));
}
}

Back to the top