diff --git a/plugins/junit/src/com/intellij/execution/junit/TestInClassConfigurationProducer.java b/plugins/junit/src/com/intellij/execution/junit/TestInClassConfigurationProducer.java index 0d5a27aa1be9..0994052f09f7 100644 --- a/plugins/junit/src/com/intellij/execution/junit/TestInClassConfigurationProducer.java +++ b/plugins/junit/src/com/intellij/execution/junit/TestInClassConfigurationProducer.java @@ -15,10 +15,40 @@ */ package com.intellij.execution.junit; +import com.intellij.execution.actions.ConfigurationContext; +import com.intellij.execution.actions.ConfigurationFromContext; import com.intellij.execution.testframework.AbstractInClassConfigurationProducer; +import com.intellij.openapi.util.Ref; +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; -public class TestInClassConfigurationProducer extends AbstractInClassConfigurationProducer { +public class TestInClassConfigurationProducer extends JUnitConfigurationProducer { + private JUnitInClassConfigurationProducerDelegate myDelegate = new JUnitInClassConfigurationProducerDelegate(); public TestInClassConfigurationProducer() { super(JUnitConfigurationType.getInstance()); } + + @Override + protected boolean setupConfigurationFromContext(JUnitConfiguration configuration, + ConfigurationContext context, + Ref sourceElement) { + return myDelegate.setupConfigurationFromContext(configuration, context, sourceElement); + } + + @Override + public void onFirstRun(@NotNull ConfigurationFromContext configuration, + @NotNull ConfigurationContext fromContext, + @NotNull Runnable performRunnable) { + myDelegate.onFirstRun(configuration, fromContext, performRunnable); + } + + private static class JUnitInClassConfigurationProducerDelegate + extends AbstractInClassConfigurationProducer { + public JUnitInClassConfigurationProducerDelegate() {super(JUnitConfigurationType.getInstance());} + + @Override + protected boolean setupConfigurationFromContext(JUnitConfiguration configuration, ConfigurationContext context, Ref sourceElement) { + return super.setupConfigurationFromContext(configuration, context, sourceElement); + } + } } diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGInClassConfigurationProducer.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGInClassConfigurationProducer.java index d44f15ec8633..16a785f99aff 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGInClassConfigurationProducer.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGInClassConfigurationProducer.java @@ -15,10 +15,44 @@ */ package com.theoryinpractice.testng.configuration; +import com.intellij.execution.actions.ConfigurationContext; +import com.intellij.execution.actions.ConfigurationFromContext; +import com.intellij.execution.configurations.ConfigurationType; import com.intellij.execution.testframework.AbstractInClassConfigurationProducer; +import com.intellij.openapi.util.Ref; +import com.intellij.psi.PsiElement; +import org.jetbrains.annotations.NotNull; -public class TestNGInClassConfigurationProducer extends AbstractInClassConfigurationProducer { +public class TestNGInClassConfigurationProducer extends TestNGConfigurationProducer { + private TestNGInClassConfigurationProducerDelegate myDelegate = new TestNGInClassConfigurationProducerDelegate(TestNGConfigurationType.getInstance()); protected TestNGInClassConfigurationProducer() { super(TestNGConfigurationType.getInstance()); } + + @Override + public void onFirstRun(@NotNull ConfigurationFromContext configuration, + @NotNull ConfigurationContext fromContext, + @NotNull Runnable performRunnable) { + myDelegate.onFirstRun(configuration, fromContext, performRunnable); + } + + @Override + protected boolean setupConfigurationFromContext(TestNGConfiguration configuration, + ConfigurationContext context, + Ref sourceElement) { + return myDelegate.setupConfigurationFromContext(configuration, context, sourceElement); + } + + private static class TestNGInClassConfigurationProducerDelegate extends AbstractInClassConfigurationProducer { + protected TestNGInClassConfigurationProducerDelegate(ConfigurationType configurationType) { + super(configurationType); + } + + @Override + protected boolean setupConfigurationFromContext(TestNGConfiguration configuration, + ConfigurationContext context, + Ref sourceElement) { + return super.setupConfigurationFromContext(configuration, context, sourceElement); + } + } }