simplify filters in JetTestCaseBuilder
This commit is contained in:
@@ -53,37 +53,37 @@ public abstract class JetTestCaseBuilder {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) {
|
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, @NotNull NamedTestFactory factory) {
|
||||||
return suiteForDirectory(baseDataDir, dataPath, recursive, emptyFilter, factory);
|
return suiteForDirectory(baseDataDir, dataPath, recursive, kotlinFilter, factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive, final FilenameFilter filter, @NotNull NamedTestFactory factory) {
|
public static TestSuite suiteForDirectory(String baseDataDir, @NotNull final String dataPath, boolean recursive,
|
||||||
|
@NotNull final FilenameFilter filter, @NotNull NamedTestFactory factory) {
|
||||||
TestSuite suite = new TestSuite(dataPath);
|
TestSuite suite = new TestSuite(dataPath);
|
||||||
appendTestsInDirectory(baseDataDir, dataPath, recursive, filter, factory, suite);
|
appendTestsInDirectory(baseDataDir, dataPath, recursive, filter, factory, suite);
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, final FilenameFilter filter, NamedTestFactory factory, TestSuite suite) {
|
public static FilenameFilter kotlinFilter = new FilenameFilter() {
|
||||||
final String extensionJet = ".jet";
|
@Override
|
||||||
final String extensionKt = ".kt";
|
public boolean accept(File dir, String name) {
|
||||||
final FilenameFilter extensionFilter = new FilenameFilter() {
|
return name.endsWith(".kt") || name.endsWith("jet");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static FilenameFilter and(@NotNull final FilenameFilter a, @NotNull final FilenameFilter b) {
|
||||||
|
return new FilenameFilter() {
|
||||||
@Override
|
@Override
|
||||||
public boolean accept(File dir, String name) {
|
public boolean accept(File dir, String name) {
|
||||||
return name.endsWith(extensionJet) || name.endsWith(extensionKt);
|
return a.accept(dir, name) && b.accept(dir, name);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
FilenameFilter resultFilter;
|
}
|
||||||
if (filter != emptyFilter) {
|
|
||||||
resultFilter = new FilenameFilter() {
|
public static void appendTestsInDirectory(String baseDataDir, String dataPath, boolean recursive, @NotNull FilenameFilter filter, NamedTestFactory factory, TestSuite suite) {
|
||||||
@Override
|
final String extensionJet = ".jet";
|
||||||
public boolean accept(File file, String s) {
|
final String extensionKt = ".kt";
|
||||||
return extensionFilter.accept(file, s) && filter.accept(file, s);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
resultFilter = extensionFilter;
|
|
||||||
}
|
|
||||||
File dir = new File(baseDataDir + dataPath);
|
File dir = new File(baseDataDir + dataPath);
|
||||||
FileFilter dirFilter = new FileFilter() {
|
FileFilter dirFilter = new FileFilter() {
|
||||||
@Override
|
@Override
|
||||||
@@ -100,13 +100,15 @@ public abstract class JetTestCaseBuilder {
|
|||||||
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory));
|
suite.addTest(suiteForDirectory(baseDataDir, dataPath + "/" + subdir.getName(), recursive, filter, factory));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
List<File> files = Arrays.asList(dir.listFiles(resultFilter));
|
List<File> files = Arrays.asList(dir.listFiles(filter));
|
||||||
Collections.sort(files);
|
Collections.sort(files);
|
||||||
for (File file : files) {
|
for (File file : files) {
|
||||||
String fileName = file.getName();
|
String fileName = file.getName();
|
||||||
assert fileName != null;
|
String testName =
|
||||||
String extension = fileName.endsWith(extensionJet) ? extensionJet : extensionKt;
|
fileName.endsWith(extensionJet) ? fileName.substring(0, fileName.length() - extensionJet.length()) :
|
||||||
suite.addTest(factory.createTest(dataPath, fileName.substring(0, fileName.length() - extension.length()), file));
|
fileName.endsWith(extensionKt) ? fileName.substring(0, fileName.length() - extensionKt.length()) :
|
||||||
|
fileName;
|
||||||
|
suite.addTest(factory.createTest(dataPath, testName, file));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,21 +71,21 @@ public class JetPsiCheckerTest extends LightDaemonAnalyzerTestCase {
|
|||||||
|
|
||||||
public static Test suite() {
|
public static Test suite() {
|
||||||
TestSuite suite = new TestSuite();
|
TestSuite suite = new TestSuite();
|
||||||
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/", false, JetTestCaseBuilder.kotlinFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
||||||
return new JetPsiCheckerTest(dataPath, name);
|
return new JetPsiCheckerTest(dataPath, name);
|
||||||
}
|
}
|
||||||
}, suite);
|
}, suite);
|
||||||
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/regression/", false, JetTestCaseBuilder.kotlinFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
||||||
return new JetPsiCheckerTest(dataPath, name);
|
return new JetPsiCheckerTest(dataPath, name);
|
||||||
}
|
}
|
||||||
}, suite);
|
}, suite);
|
||||||
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.appendTestsInDirectory(PluginTestCaseBase.getTestDataPathBase(), "/checker/infos/", false, JetTestCaseBuilder.kotlinFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
public Test createTest(@NotNull String dataPath, @NotNull String name, @NotNull File file) {
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class ResolveBaseTest extends LightCodeInsightTestCase {
|
|||||||
|
|
||||||
JetTestCaseBuilder.appendTestsInDirectory(
|
JetTestCaseBuilder.appendTestsInDirectory(
|
||||||
PluginTestCaseBase.getTestDataPathBase(), "/resolve/", false,
|
PluginTestCaseBase.getTestDataPathBase(), "/resolve/", false,
|
||||||
JetTestCaseBuilder.emptyFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
JetTestCaseBuilder.kotlinFilter, new JetTestCaseBuilder.NamedTestFactory() {
|
||||||
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
Reference in New Issue
Block a user