diff options
author | i053061 | 2012-12-20 17:35:30 +0000 |
---|---|---|
committer | i053061 | 2012-12-20 17:35:30 +0000 |
commit | a1399fce9b54cb2de5119df2ba744e1883a7b5d9 (patch) | |
tree | b9b9c1db0b32aeee77f58f99ab4a8d9d5e04d306 | |
parent | 6aa06a2676ee7b5c01ad104ae64469599cab05da (diff) | |
download | org.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
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));
}
}
|