From 23f4f80a5222ab2de12e5b1eb634f787226e342f Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 19 Dec 2011 21:20:49 +0400 Subject: [PATCH] Make a parameterized test --- .../quickfix/JetPsiCheckerMultifileTest.java | 47 ++++++++++++++++--- .../jet/plugin/quickfix/JetQuickFixTest.java | 28 ----------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/JetPsiCheckerMultifileTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetPsiCheckerMultifileTest.java index 6a977c15ca0..9a2714ca055 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/JetPsiCheckerMultifileTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetPsiCheckerMultifileTest.java @@ -14,20 +14,21 @@ import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.util.Pair; import com.intellij.rt.execution.junit.FileComparisonFailure; import com.intellij.util.ui.UIUtil; +import junit.framework.Test; +import junit.framework.TestSuite; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.plugin.PluginTestCaseBase; import java.io.File; import java.io.FilenameFilter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; +import java.util.*; /** * @author Nikolay Krasko */ -public abstract class JetPsiCheckerMultifileTest extends DaemonAnalyzerTestCase { +public class JetPsiCheckerMultifileTest extends DaemonAnalyzerTestCase { public final static String MAIN_SUBSTRING = ".Main"; public final static String DATA_SUBSTRING = ".Data"; @@ -42,7 +43,7 @@ public abstract class JetPsiCheckerMultifileTest extends DaemonAnalyzerTestCase setName("testRun"); } - protected boolean shouldBeAvailableAfterExecution() { + protected static boolean shouldBeAvailableAfterExecution() { return false; } @@ -188,4 +189,38 @@ public abstract class JetPsiCheckerMultifileTest extends DaemonAnalyzerTestCase public static boolean isMainFile(String fileName) { return fileName.contains(MAIN_SUBSTRING); } + + public static Test suite() { + TestSuite suite = new TestSuite(); + + FilenameFilter multifileFileNameFilter = new FilenameFilter() { + @Override + public boolean accept(File file, String s) { + return s.startsWith("before") && JetPsiCheckerMultifileTest.isMainFile(s); + } + }; + + JetTestCaseBuilder.NamedTestFactory multiFileNamedTestFactory = new JetTestCaseBuilder.NamedTestFactory() { + @NotNull + @Override + public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) { + return new JetPsiCheckerMultifileTest(dataPath, name); + } + }; + + File dir = new File(getTestDataPathBase()); + List subDirs = Arrays.asList(dir.list()); + Collections.sort(subDirs); + for (String subDirName : subDirs) { + final TestSuite multiFileTestSuite = JetTestCaseBuilder.suiteForDirectory(getTestDataPathBase(), subDirName, true, multifileFileNameFilter, multiFileNamedTestFactory); + if (multiFileTestSuite.countTestCases() != 0) { + suite.addTest(multiFileTestSuite); + } + } + return suite; + } + + public static String getTestDataPathBase() { + return JetTestCaseBuilder.getHomeDirectory() + "/idea/testData/quickfix/"; + } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java index 85c62ffa537..044378f134d 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/JetQuickFixTest.java @@ -39,12 +39,6 @@ public class JetQuickFixTest extends LightQuickFixTestCase { } }; } - - public static class JetPsiCheckerMultifileTestImpl extends JetPsiCheckerMultifileTest { - public JetPsiCheckerMultifileTestImpl(String dataPath, String name) { - super(dataPath, name); - } - } public static Test suite() { //setFilter(); //to launch only part of tests @@ -57,13 +51,6 @@ public class JetQuickFixTest extends LightQuickFixTestCase { } }; - FilenameFilter multifileFileNameFilter = new FilenameFilter() { - @Override - public boolean accept(File file, String s) { - return s.startsWith("before") && JetPsiCheckerMultifileTest.isMainFile(s); - } - }; - JetTestCaseBuilder.NamedTestFactory singleFileNamedTestFactory = new JetTestCaseBuilder.NamedTestFactory() { @NotNull @Override @@ -72,29 +59,14 @@ public class JetQuickFixTest extends LightQuickFixTestCase { } }; - JetTestCaseBuilder.NamedTestFactory multiFileNamedTestFactory = new JetTestCaseBuilder.NamedTestFactory() { - @NotNull - @Override - public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) { - return new JetPsiCheckerMultifileTestImpl(dataPath, name); - } - }; - File dir = new File(getTestDataPathBase()); List subDirs = Arrays.asList(quickFixTestsFilter != null ? dir.list(quickFixTestsFilter) : dir.list()); Collections.sort(subDirs); for (String subDirName : subDirs) { - final TestSuite singleFileTestSuite = JetTestCaseBuilder.suiteForDirectory(getTestDataPathBase(), subDirName, true, singleFileNameFilter, singleFileNamedTestFactory); if (singleFileTestSuite.countTestCases() != 0) { suite.addTest(singleFileTestSuite); } - - final TestSuite multiFileTestSuite = JetTestCaseBuilder.suiteForDirectory(getTestDataPathBase(), subDirName, true, multifileFileNameFilter, multiFileNamedTestFactory); - if (multiFileTestSuite.countTestCases() != 0) { - suite.addTest(multiFileTestSuite); - } - } return suite; }