Minor: Make diff function for AbstractKotlinFoldingTest

~true~ and ~false~ cases left unresolved
This commit is contained in:
Nikolay Krasko
2019-11-12 02:01:04 +03:00
committed by Nikolay Krasko
parent 5d6333f0f4
commit 89f26cc89d
@@ -10,11 +10,14 @@ import com.intellij.codeInsight.folding.impl.JavaCodeFoldingSettingsImpl;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.SettingsConfigurator;
import org.junit.Assert;
import org.junit.ComparisonFailure;
import java.io.File;
import java.io.IOException;
@@ -23,27 +26,52 @@ import java.util.function.Consumer;
public abstract class AbstractKotlinFoldingTest extends KotlinLightCodeInsightFixtureTestCase {
protected void doTest(@NotNull String path) {
myFixture.testFolding(path);
try {
myFixture.testFolding(path);
} catch (FileComparisonFailure e) {
throw new FileComparisonFailure(e.getMessage(), e.getExpected(), e.getActual(), new File(e.getFilePath()).getAbsolutePath());
}
}
protected void doSettingsFoldingTest(@NotNull String path) throws IOException{
String fileText = FileUtil.loadFile(new File(path), true);
protected void doSettingsFoldingTest(@NotNull String path) throws IOException {
File file = new File(path);
String fileText = FileUtil.loadFile(file, true);
String directText = fileText.replaceAll("~true~", "true").replaceAll("~false~", "false");
directText += "\n\n// Generated from: " + path;
String suffix = "\n\n// Generated from: " + path;
directText += suffix;
Consumer<String> doExpandSettingsTestFunction = this::doExpandSettingsTest;
doTestWithSettings(directText, doExpandSettingsTestFunction);
try {
doTestWithSettings(directText, doExpandSettingsTestFunction);
} catch (ComparisonFailure e) {
KotlinTestUtils.assertEqualsToFile(
file,
e.getActual().replace(suffix, "")
);
}
String invertedText = fileText
.replaceAll("~false~", "true").replaceAll("~true~", "false")
.replaceAll(SettingsConfigurator.SET_TRUE_DIRECTIVE, "~TEMP_TRUE_DIRECTIVE~")
.replaceAll(SettingsConfigurator.SET_FALSE_DIRECTIVE, SettingsConfigurator.SET_TRUE_DIRECTIVE)
.replaceAll("~TEMP_TRUE_DIRECTIVE~", SettingsConfigurator.SET_FALSE_DIRECTIVE);
invertedText += "\n\n// Generated from: " + path + " with !INVERTED! settings";
String invertedSuffix = "\n\n// Generated from: " + path + " with !INVERTED! settings";
invertedText += invertedSuffix;
doTestWithSettings(invertedText, doExpandSettingsTestFunction);
try {
doTestWithSettings(invertedText, doExpandSettingsTestFunction);
} catch (ComparisonFailure e) {
KotlinTestUtils.assertEqualsToFile(
file,
e.getActual()
.replaceAll(SettingsConfigurator.SET_FALSE_DIRECTIVE, "~TEMP_TRUE_DIRECTIVE~")
.replaceAll(SettingsConfigurator.SET_TRUE_DIRECTIVE, SettingsConfigurator.SET_FALSE_DIRECTIVE)
.replaceAll("~TEMP_TRUE_DIRECTIVE~", SettingsConfigurator.SET_TRUE_DIRECTIVE)
.replace(invertedSuffix, "")
);
}
}
protected static void doTestWithSettings(@NotNull String fileText, @NotNull Consumer<String> runnable) {