Can't change file for checkResultByFile by simple assignment to myFile anymore
This commit is contained in:
@@ -29,7 +29,6 @@ import com.intellij.refactoring.util.CommonRefactoringUtil;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.Convertor;
|
||||
import junit.framework.ComparisonFailure;
|
||||
import kotlin.jvm.functions.Function0;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil;
|
||||
@@ -41,6 +40,7 @@ import org.jetbrains.kotlin.psi.KtFile;
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.ComparisonFailure;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@@ -95,7 +95,7 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
||||
}
|
||||
sourceFilePaths.add(path);
|
||||
|
||||
Map<String, PsiFile> pathToFile = ContainerUtil.newMapFromKeys(
|
||||
Map<String, PsiFile> pathToFiles = ContainerUtil.newMapFromKeys(
|
||||
sourceFilePaths.iterator(),
|
||||
new Convertor<String, PsiFile>() {
|
||||
@Override
|
||||
@@ -127,7 +127,7 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
||||
DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) getFile());
|
||||
}
|
||||
|
||||
doTestFor(pathToFile, intentionAction, fileText);
|
||||
doTestFor(path, pathToFiles, intentionAction, fileText);
|
||||
|
||||
if (getFile() instanceof KtFile && !InTextDirectivesUtils.isDirectiveDefined(fileText, "// SKIP_ERRORS_AFTER")) {
|
||||
DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) getFile());
|
||||
@@ -140,7 +140,7 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
private void doTestFor(Map<String, PsiFile> pathToFile, final IntentionAction intentionAction, String fileText) throws Exception {
|
||||
private void doTestFor(String mainFilePath, Map<String, PsiFile> pathToFiles, final IntentionAction intentionAction, String fileText) throws Exception {
|
||||
String isApplicableString = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// IS_APPLICABLE: ");
|
||||
boolean isApplicableExpected = isApplicableString == null || isApplicableString.equals("true");
|
||||
|
||||
@@ -171,17 +171,20 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
||||
}
|
||||
);
|
||||
// Don't bother checking if it should have failed.
|
||||
if (shouldFailString.isEmpty()) {
|
||||
for (Map.Entry<String, PsiFile> entry: pathToFile.entrySet()) {
|
||||
//noinspection AssignmentToStaticFieldFromInstanceMethod
|
||||
myFile = entry.getValue();
|
||||
String canonicalPathToExpectedFile = PathUtil.getCanonicalPath(entry.getKey() + ".after");
|
||||
|
||||
try {
|
||||
checkResultByFile(canonicalPathToExpectedFile);
|
||||
if (shouldFailString == null) {
|
||||
for (Map.Entry<String, PsiFile> entry: pathToFiles.entrySet()) {
|
||||
String filePath = entry.getKey();
|
||||
String canonicalPathToExpectedFile = PathUtil.getCanonicalPath(filePath + ".after");
|
||||
if (filePath.equals(mainFilePath)) {
|
||||
try {
|
||||
checkResultByFile(canonicalPathToExpectedFile);
|
||||
}
|
||||
catch (ComparisonFailure e) {
|
||||
KotlinTestUtils.assertEqualsToFile(new File(canonicalPathToExpectedFile), getEditor().getDocument().getText());
|
||||
}
|
||||
}
|
||||
catch (ComparisonFailure e) {
|
||||
KotlinTestUtils.assertEqualsToFile(new File(canonicalPathToExpectedFile), getEditor().getDocument().getText());
|
||||
else {
|
||||
KotlinTestUtils.assertEqualsToFile(new File(canonicalPathToExpectedFile), entry.getValue().getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,9 @@ import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.testFramework.VfsTestUtil;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -39,8 +41,8 @@ import kotlin.collections.ArraysKt;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
||||
import org.jetbrains.kotlin.idea.KotlinDaemonAnalyzerTestCase;
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
||||
import org.jetbrains.kotlin.idea.quickfix.utils.QuickfixTestUtilsKt;
|
||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil;
|
||||
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils;
|
||||
@@ -290,18 +292,13 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer
|
||||
String fileName = file.getName();
|
||||
if (fileName.equals(mainFileName) || !fileName.startsWith(extraFileNamePrefix(myFile.getName()))) continue;
|
||||
|
||||
myFile = file;
|
||||
String extraFileFullPath = beforeFileName.replace(mainFileName, fileName);
|
||||
try {
|
||||
checkResultByFile(extraFileFullPath.replace(".before.", ".after."));
|
||||
File afterFile = new File(extraFileFullPath.replace(".before.", ".after."));
|
||||
if (afterFile.exists()) {
|
||||
KotlinTestUtils.assertEqualsToFile(afterFile, file.getText());
|
||||
}
|
||||
catch (AssertionError e) {
|
||||
if (e.getMessage().startsWith("Cannot find file")) {
|
||||
checkResultByFile(extraFileFullPath);
|
||||
}
|
||||
else {
|
||||
throw e;
|
||||
}
|
||||
else {
|
||||
KotlinTestUtils.assertEqualsToFile(new File(extraFileFullPath), file.getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -396,4 +393,10 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer
|
||||
this.content = content;
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private VirtualFile findVirtualFile(@NotNull String filePath) {
|
||||
String absolutePath = getTestDataPath() + filePath;
|
||||
return VfsTestUtil.findFileByCaseSensitivePath(absolutePath);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user