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.PathUtil;
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import com.intellij.util.containers.Convertor;
|
import com.intellij.util.containers.Convertor;
|
||||||
import junit.framework.ComparisonFailure;
|
|
||||||
import kotlin.jvm.functions.Function0;
|
import kotlin.jvm.functions.Function0;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil;
|
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.InTextDirectivesUtils;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
import org.junit.ComparisonFailure;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -95,7 +95,7 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
|||||||
}
|
}
|
||||||
sourceFilePaths.add(path);
|
sourceFilePaths.add(path);
|
||||||
|
|
||||||
Map<String, PsiFile> pathToFile = ContainerUtil.newMapFromKeys(
|
Map<String, PsiFile> pathToFiles = ContainerUtil.newMapFromKeys(
|
||||||
sourceFilePaths.iterator(),
|
sourceFilePaths.iterator(),
|
||||||
new Convertor<String, PsiFile>() {
|
new Convertor<String, PsiFile>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -127,7 +127,7 @@ public abstract class AbstractIntentionTest extends KotlinCodeInsightTestCase {
|
|||||||
DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) getFile());
|
DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) getFile());
|
||||||
}
|
}
|
||||||
|
|
||||||
doTestFor(pathToFile, intentionAction, fileText);
|
doTestFor(path, pathToFiles, intentionAction, fileText);
|
||||||
|
|
||||||
if (getFile() instanceof KtFile && !InTextDirectivesUtils.isDirectiveDefined(fileText, "// SKIP_ERRORS_AFTER")) {
|
if (getFile() instanceof KtFile && !InTextDirectivesUtils.isDirectiveDefined(fileText, "// SKIP_ERRORS_AFTER")) {
|
||||||
DirectiveBasedActionUtils.INSTANCE.checkForUnexpectedErrors((KtFile) getFile());
|
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: ");
|
String isApplicableString = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// IS_APPLICABLE: ");
|
||||||
boolean isApplicableExpected = isApplicableString == null || isApplicableString.equals("true");
|
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.
|
// Don't bother checking if it should have failed.
|
||||||
if (shouldFailString.isEmpty()) {
|
if (shouldFailString == null) {
|
||||||
for (Map.Entry<String, PsiFile> entry: pathToFile.entrySet()) {
|
for (Map.Entry<String, PsiFile> entry: pathToFiles.entrySet()) {
|
||||||
//noinspection AssignmentToStaticFieldFromInstanceMethod
|
String filePath = entry.getKey();
|
||||||
myFile = entry.getValue();
|
String canonicalPathToExpectedFile = PathUtil.getCanonicalPath(filePath + ".after");
|
||||||
String canonicalPathToExpectedFile = PathUtil.getCanonicalPath(entry.getKey() + ".after");
|
if (filePath.equals(mainFilePath)) {
|
||||||
|
try {
|
||||||
try {
|
checkResultByFile(canonicalPathToExpectedFile);
|
||||||
checkResultByFile(canonicalPathToExpectedFile);
|
}
|
||||||
|
catch (ComparisonFailure e) {
|
||||||
|
KotlinTestUtils.assertEqualsToFile(new File(canonicalPathToExpectedFile), getEditor().getDocument().getText());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (ComparisonFailure e) {
|
else {
|
||||||
KotlinTestUtils.assertEqualsToFile(new File(canonicalPathToExpectedFile), getEditor().getDocument().getText());
|
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.Pair;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.openapi.util.text.StringUtil;
|
import com.intellij.openapi.util.text.StringUtil;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
|
import com.intellij.testFramework.VfsTestUtil;
|
||||||
import com.intellij.util.ArrayUtil;
|
import com.intellij.util.ArrayUtil;
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import com.intellij.util.ui.UIUtil;
|
import com.intellij.util.ui.UIUtil;
|
||||||
@@ -39,8 +41,8 @@ import kotlin.collections.ArraysKt;
|
|||||||
import kotlin.collections.CollectionsKt;
|
import kotlin.collections.CollectionsKt;
|
||||||
import kotlin.jvm.functions.Function1;
|
import kotlin.jvm.functions.Function1;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType;
|
|
||||||
import org.jetbrains.kotlin.idea.KotlinDaemonAnalyzerTestCase;
|
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.quickfix.utils.QuickfixTestUtilsKt;
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil;
|
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil;
|
||||||
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils;
|
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils;
|
||||||
@@ -290,18 +292,13 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer
|
|||||||
String fileName = file.getName();
|
String fileName = file.getName();
|
||||||
if (fileName.equals(mainFileName) || !fileName.startsWith(extraFileNamePrefix(myFile.getName()))) continue;
|
if (fileName.equals(mainFileName) || !fileName.startsWith(extraFileNamePrefix(myFile.getName()))) continue;
|
||||||
|
|
||||||
myFile = file;
|
|
||||||
String extraFileFullPath = beforeFileName.replace(mainFileName, fileName);
|
String extraFileFullPath = beforeFileName.replace(mainFileName, fileName);
|
||||||
try {
|
File afterFile = new File(extraFileFullPath.replace(".before.", ".after."));
|
||||||
checkResultByFile(extraFileFullPath.replace(".before.", ".after."));
|
if (afterFile.exists()) {
|
||||||
|
KotlinTestUtils.assertEqualsToFile(afterFile, file.getText());
|
||||||
}
|
}
|
||||||
catch (AssertionError e) {
|
else {
|
||||||
if (e.getMessage().startsWith("Cannot find file")) {
|
KotlinTestUtils.assertEqualsToFile(new File(extraFileFullPath), file.getText());
|
||||||
checkResultByFile(extraFileFullPath);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -396,4 +393,10 @@ public abstract class AbstractQuickFixMultiFileTest extends KotlinDaemonAnalyzer
|
|||||||
this.content = content;
|
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