Extract JetTestUtils.getLastCommentInFile()

JetNameSuggesterTest contains useful code for getting the last comment
of a file. Extract it to JetTestUtils.getLastCommentInFile() so other
tests can use it as well.
This commit is contained in:
Tuomas Tynkkynen
2014-02-07 15:05:09 -08:00
committed by Nikolay Krasko
parent cb2733a0ae
commit 420a08167b
2 changed files with 20 additions and 15 deletions
@@ -29,6 +29,7 @@ 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.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory;
import com.intellij.psi.impl.PsiFileFactoryImpl;
@@ -64,6 +65,7 @@ import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.lazy.LazyResolveTestUtil;
import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.JetLanguage;
import org.jetbrains.jet.test.InnerTestClasses;
import org.jetbrains.jet.test.TestMetadata;
@@ -527,6 +529,21 @@ public class JetTestUtils {
return result.toString();
}
public static String getLastCommentInFile(JetFile file) {
PsiElement lastChild = file.getLastChild();
assert lastChild != null;
if (lastChild.getNode().getElementType().equals(JetTokens.BLOCK_COMMENT)) {
String lastChildText = lastChild.getText();
return lastChildText.substring(2, lastChildText.length() - 2).trim();
}
else if (lastChild.getNode().getElementType().equals(JetTokens.EOL_COMMENT)) {
return lastChild.getText().substring(2).trim();
} else {
throw new AssertionError("Test file '" + file.getName() + "' should end in a comment; last node was: " + lastChild);
}
}
public static void compileJavaFiles(@NotNull Collection<File> files, List<String> options) throws IOException {
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnosticCollector = new DiagnosticCollector<JavaFileObject>();
@@ -17,12 +17,11 @@
package org.jetbrains.jet.plugin.refactoring.nameSuggester;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiElement;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lexer.JetTokens;
import org.jetbrains.jet.plugin.PluginTestCaseBase;
import org.jetbrains.jet.plugin.refactoring.JetNameSuggester;
import org.jetbrains.jet.plugin.refactoring.JetNameValidator;
@@ -76,18 +75,7 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
private void doTest() {
myFixture.configureByFile(getTestName(false) + ".kt");
JetFile file = (JetFile) myFixture.getFile();
PsiElement lastChild = file.getLastChild();
assert lastChild != null;
String expectedResultText = null;
if (lastChild.getNode().getElementType().equals(JetTokens.BLOCK_COMMENT)) {
String lastChildText = lastChild.getText();
expectedResultText = lastChildText.substring(2, lastChildText.length() - 2).trim();
}
else if (lastChild.getNode().getElementType().equals(JetTokens.EOL_COMMENT)) {
expectedResultText = lastChild.getText().substring(2).trim();
}
assert expectedResultText != null;
final String finalExpectedResultText = expectedResultText;
final String expectedResultText = JetTestUtils.getLastCommentInFile(file);
try {
JetRefactoringUtil.selectExpression(myFixture.getEditor(), file, new JetRefactoringUtil.SelectExpressionCallback() {
@Override
@@ -95,7 +83,7 @@ public class JetNameSuggesterTest extends LightCodeInsightFixtureTestCase {
String[] names = JetNameSuggester.suggestNames(expression, JetNameValidator.getEmptyValidator(getProject()), "value");
Arrays.sort(names);
String result = StringUtil.join(names, "\n").trim();
assertEquals(finalExpectedResultText, result);
assertEquals(expectedResultText, result);
}
});
} catch (JetRefactoringUtil.IntroduceRefactoringException e) {