Convert to Kotlin, auto-convert.

This commit is contained in:
Evgeny Gerashchenko
2015-06-11 21:25:44 +03:00
parent 254c58f9e4
commit cea0ffa3b7
@@ -14,159 +14,147 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.idea.filters; package org.jetbrains.kotlin.idea.filters
import com.intellij.execution.filters.Filter; import com.intellij.execution.filters.Filter
import com.intellij.execution.filters.HyperlinkInfo; import com.intellij.execution.filters.HyperlinkInfo
import com.intellij.execution.filters.OpenFileHyperlinkInfo; import com.intellij.execution.filters.OpenFileHyperlinkInfo
import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Document
import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.FileDocumentManager
import com.intellij.openapi.fileEditor.OpenFileDescriptor; import com.intellij.openapi.fileEditor.OpenFileDescriptor
import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VfsUtilCore
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.GlobalSearchScope
import com.intellij.refactoring.MultiFileTestCase; import com.intellij.refactoring.MultiFileTestCase
import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.PsiTestUtil
import kotlin.jvm.functions.Function1; import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase; import org.jetbrains.kotlin.utils.*
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.utils.UtilsPackage;
import java.io.File; import java.io.File
import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassFqName; import org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassFqName
import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassName; import org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClassName
import static org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils.getPackagePartFqName; import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils.getPackagePartFqName
public class JetExceptionFilterTest extends MultiFileTestCase { public class JetExceptionFilterTest : MultiFileTestCase() {
private VirtualFile rootDir; private var rootDir: VirtualFile? = null
@Override throws(Exception::class)
protected void tearDown() throws Exception { override fun tearDown() {
rootDir = null; rootDir = null
super.tearDown(); super.tearDown()
} }
@Override override fun getTestDataPath(): String {
@NotNull return PluginTestCaseBase.getTestDataPathBase()
protected String getTestDataPath() {
return PluginTestCaseBase.getTestDataPathBase();
} }
@Override override fun getTestRoot(): String {
@NotNull return "/filters/exceptionFilter/"
protected String getTestRoot() {
return "/filters/exceptionFilter/";
} }
private void configure() { private fun configure() {
try { try {
String path = getTestDataPath() + getTestRoot() + getTestName(true); val path = getTestDataPath() + getTestRoot() + getTestName(true)
rootDir = PsiTestUtil.createTestProjectStructure(myProject, myModule, path, myFilesToDelete, false); rootDir = PsiTestUtil.createTestProjectStructure(myProject, myModule, path, PlatformTestCase.myFilesToDelete, false)
prepareProject(rootDir); prepareProject(rootDir)
PsiDocumentManager.getInstance(myProject).commitAllDocuments(); PsiDocumentManager.getInstance(myProject).commitAllDocuments()
} }
catch (Exception e) { catch (e: Exception) {
throw UtilsPackage.rethrow(e); throw rethrow(e)
} }
} }
@NotNull private fun createStackTraceElementLine(prefix: String, fileName: String, className: String, lineNumber: Int): String {
private static String createStackTraceElementLine(@NotNull String prefix, @NotNull String fileName, @NotNull String className, int lineNumber) {
// Method name doesn't matter // Method name doesn't matter
String methodName = "foo"; val methodName = "foo"
// File's last name appears in stack trace // File's last name appears in stack trace
String fileLastName = new File(fileName).getName(); val fileLastName = File(fileName).getName()
StackTraceElement element = new StackTraceElement(className, methodName, fileLastName, lineNumber); val element = StackTraceElement(className, methodName, fileLastName, lineNumber)
return prefix + element + "\n"; return prefix + element + "\n"
} }
private void doTest(@NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) { private fun doTest(fileName: String, lineNumber: Int, className: Function1<VirtualFile, String>) {
doTest("\tat ", fileName, lineNumber, className); doTest("\tat ", fileName, lineNumber, className)
} }
private void doTest(@NotNull String linePrefix, @NotNull String fileName, int lineNumber, @NotNull Function1<VirtualFile, String> className) { private fun doTest(linePrefix: String, fileName: String, lineNumber: Int, className: Function1<VirtualFile, String>) {
if (rootDir == null) { if (rootDir == null) {
configure(); configure()
} }
assert rootDir != null; assert(rootDir != null)
Filter filter = new JetExceptionFilterFactory().create(GlobalSearchScope.allScope(myProject)); val filter = JetExceptionFilterFactory().create(GlobalSearchScope.allScope(myProject))
VirtualFile expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir); val expectedFile = VfsUtilCore.findRelativeFile(fileName, rootDir)
assertNotNull(expectedFile); TestCase.assertNotNull(expectedFile)
String line = createStackTraceElementLine(linePrefix, fileName, className.invoke(expectedFile), lineNumber); val line = createStackTraceElementLine(linePrefix, fileName, className.invoke(expectedFile), lineNumber)
Filter.Result result = filter.applyFilter(line, 0); val result = filter.applyFilter(line, 0)
assertNotNull(result); TestCase.assertNotNull(result)
HyperlinkInfo info = result.getFirstHyperlinkInfo(); val info = result.getFirstHyperlinkInfo()
assertNotNull(info); TestCase.assertNotNull(info)
assertInstanceOf(info, OpenFileHyperlinkInfo.class); UsefulTestCase.assertInstanceOf(info, javaClass<OpenFileHyperlinkInfo>())
OpenFileDescriptor descriptor = ((OpenFileHyperlinkInfo) info).getDescriptor(); val descriptor = (info as OpenFileHyperlinkInfo).getDescriptor()
assertNotNull(descriptor); TestCase.assertNotNull(descriptor)
assertEquals(expectedFile, descriptor.getFile()); TestCase.assertEquals(expectedFile, descriptor.getFile())
Document document = FileDocumentManager.getInstance().getDocument(expectedFile); val document = FileDocumentManager.getInstance().getDocument(expectedFile)
assertNotNull(document); TestCase.assertNotNull(document)
int expectedOffset = document.getLineStartOffset(lineNumber - 1); val expectedOffset = document.getLineStartOffset(lineNumber - 1)
assertEquals(expectedOffset, descriptor.getOffset()); TestCase.assertEquals(expectedOffset, descriptor.getOffset())
} }
public void testBreakpointReachedAt() { public fun testBreakpointReachedAt() {
doTest("Breakpoint reached at ", "breakpointReachedAt.kt", 2, new Function1<VirtualFile, String>() { doTest("Breakpoint reached at ", "breakpointReachedAt.kt", 2, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackageClassName(FqName.ROOT)
return getPackageClassName(FqName.ROOT);
} }
}); })
} }
public void testSimple() { public fun testSimple() {
doTest("simple.kt", 2, new Function1<VirtualFile, String>() { doTest("simple.kt", 2, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackageClassName(FqName.ROOT)
return getPackageClassName(FqName.ROOT);
} }
}); })
} }
public void testKt2489() { public fun testKt2489() {
final FqName packageClassFqName = getPackageClassFqName(FqName.ROOT); val packageClassFqName = getPackageClassFqName(FqName.ROOT)
doTest("a.kt", 3, new Function1<VirtualFile, String>() { doTest("a.kt", 3, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackagePartFqName(packageClassFqName, file) + "$a$f$1"
return getPackagePartFqName(packageClassFqName, file) + "$a$f$1";
} }
}); })
doTest("main.kt", 3, new Function1<VirtualFile, String>() { doTest("main.kt", 3, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackagePartFqName(packageClassFqName, file) + "$main$f$1"
return getPackagePartFqName(packageClassFqName, file) + "$main$f$1";
} }
}); })
} }
public void testMultiSameName() { public fun testMultiSameName() {
final FqName packageClassFqName = getPackageClassFqName(new FqName("multiSameName")); val packageClassFqName = getPackageClassFqName(FqName("multiSameName"))
// The order and the exact names do matter here // The order and the exact names do matter here
doTest("1/foo.kt", 4, new Function1<VirtualFile, String>() { doTest("1/foo.kt", 4, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1"
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1";
} }
}); })
doTest("2/foo.kt", 4, new Function1<VirtualFile, String>() { doTest("2/foo.kt", 4, object : Function1<VirtualFile, String> {
@Override override fun invoke(file: VirtualFile): String {
public String invoke(VirtualFile file) { return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1"
return getPackagePartFqName(packageClassFqName, file) + "$foo$f$1";
} }
}); })
} }
} }