From 38ff19caeffef6048056ea26cb7bdaacd0c8cf52 Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 13 Sep 2011 19:18:29 +0200 Subject: Log a warning if an ExtensionProvider includes other providers --- .../plugins/DefaultServerPluginRepositoryTest.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'sonar-server/src/test') diff --git a/sonar-server/src/test/java/org/sonar/server/plugins/DefaultServerPluginRepositoryTest.java b/sonar-server/src/test/java/org/sonar/server/plugins/DefaultServerPluginRepositoryTest.java index 7624e422b07..afe742b1887 100644 --- a/sonar-server/src/test/java/org/sonar/server/plugins/DefaultServerPluginRepositoryTest.java +++ b/sonar-server/src/test/java/org/sonar/server/plugins/DefaultServerPluginRepositoryTest.java @@ -26,6 +26,7 @@ import org.junit.Test; import org.picocontainer.containers.TransientPicoContainer; import org.sonar.api.*; import org.sonar.api.platform.PluginMetadata; +import org.sonar.batch.Batch; import org.sonar.core.plugins.DefaultPluginMetadata; import java.io.File; @@ -86,7 +87,7 @@ public class DefaultServerPluginRepositoryTest { } @Test - public void shouldInvokeServerExtensionProviderss() { + public void shouldInvokeServerExtensionProviders() { DefaultServerPluginRepository repository = new DefaultServerPluginRepository(mock(PluginDeployer.class)); TransientPicoContainer container = new TransientPicoContainer(); @@ -97,6 +98,17 @@ public class DefaultServerPluginRepositoryTest { assertThat(container.getComponents(FakeBatchExtension.class).size(), is(0)); } + @Test + public void shouldNotSupportProvidersOfProviders() { + DefaultServerPluginRepository repository = new DefaultServerPluginRepository(mock(PluginDeployer.class)); + + TransientPicoContainer container = new TransientPicoContainer(); + repository.registerExtensions(container, Arrays.asList(new FakePlugin(Arrays.asList(SuperExtensionProvider.class)))); + + assertThat(container.getComponents(FakeBatchExtension.class).size(), is(0)); + assertThat(container.getComponents(FakeServerExtension.class).size(), is(0)); + } + @Test public void shouldDisablePlugin() { DefaultServerPluginRepository repository = new DefaultServerPluginRepository(mock(PluginDeployer.class)); @@ -175,4 +187,12 @@ public class DefaultServerPluginRepositoryTest { return Arrays.asList(FakeBatchExtension.class, FakeServerExtension.class); } } + + public static class SuperExtensionProvider extends ExtensionProvider implements ServerExtension { + + @Override + public Object provide() { + return FakeExtensionProvider.class; + } + } } -- cgit v1.2.3