Throwing FileComparisonFailure enables opening test data file in diff dialog right from the test console

This commit is contained in:
Andrey Breslav
2013-10-25 18:04:09 +04:00
parent de64768b5c
commit 3bb14c2d4e
8 changed files with 20 additions and 30 deletions
@@ -23,12 +23,14 @@ import com.google.common.collect.Sets;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.ShutDownTracker;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.CharsetToolkit;
import com.intellij.psi.PsiFileFactory;
import com.intellij.psi.impl.PsiFileFactoryImpl;
import com.intellij.rt.execution.junit.FileComparisonFailure;
import com.intellij.testFramework.LightVirtualFile;
import junit.framework.TestCase;
import org.jetbrains.annotations.NonNls;
@@ -380,12 +382,15 @@ public class JetTestUtils {
FileUtil.writeToFile(expectedFile, actual);
Assert.fail("Expected data file did not exist. Generating: " + expectedFile);
}
String expected = FileUtil.loadFile(expectedFile, true);
String expected = FileUtil.loadFile(expectedFile, CharsetToolkit.UTF8, true);
// compare with hard copy: make sure nothing is lost in output
Assert.assertEquals("Expected and actual namespaces differ from " + expectedFile.getName(),
StringUtil.convertLineSeparators(expected),
StringUtil.convertLineSeparators(actual));
String expectedText = StringUtil.convertLineSeparators(expected);
String actualText = StringUtil.convertLineSeparators(actual);
if (!Comparing.equal(expectedText, actualText)) {
throw new FileComparisonFailure("Expected and actual namespaces differ from " + expectedFile.getName(),
expected, actual, expectedFile.getAbsolutePath());
}
}
catch (IOException e) {
throw new RuntimeException(e);