Use nullable value and destroy it in tearDown for REPL tests

This commit is contained in:
Nikolay Krasko
2016-08-04 17:47:11 +03:00
parent 19cea48637
commit bc0d302760
@@ -29,10 +29,9 @@ import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.application.runWriteAction
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import java.io.File import java.io.File
import kotlin.properties.Delegates
abstract class AbstractIdeReplCompletionTest : KotlinFixtureCompletionBaseTestCase() { abstract class AbstractIdeReplCompletionTest : KotlinFixtureCompletionBaseTestCase() {
private var consoleRunner: KotlinConsoleRunner by Delegates.notNull() private var consoleRunner: KotlinConsoleRunner? = null
override fun setUp() { override fun setUp() {
super.setUp() super.setUp()
@@ -40,7 +39,8 @@ abstract class AbstractIdeReplCompletionTest : KotlinFixtureCompletionBaseTestCa
} }
override fun tearDown() { override fun tearDown() {
consoleRunner.dispose() consoleRunner?.dispose()
consoleRunner = null
super.tearDown() super.tearDown()
} }
@@ -48,19 +48,20 @@ abstract class AbstractIdeReplCompletionTest : KotlinFixtureCompletionBaseTestCa
override fun defaultCompletionType() = CompletionType.BASIC override fun defaultCompletionType() = CompletionType.BASIC
override fun doTest(testPath: String) { override fun doTest(testPath: String) {
val runner = consoleRunner!!
val file = File(testPath) val file = File(testPath)
val lines = file.readLines() val lines = file.readLines()
lines.prefixedWith(">> ").forEach { consoleRunner.successfulLine(it) } // not actually executing anything, only simulating lines.prefixedWith(">> ").forEach { runner.successfulLine(it) } // not actually executing anything, only simulating
val codeSample = lines.prefixedWith("-- ").joinToString("\n") val codeSample = lines.prefixedWith("-- ").joinToString("\n")
runWriteAction { runWriteAction {
val editor = consoleRunner.consoleView.editorDocument val editor = runner.consoleView.editorDocument
editor.setText(codeSample) editor.setText(codeSample)
FileDocumentManager.getInstance().saveDocument(consoleRunner.consoleView.editorDocument) FileDocumentManager.getInstance().saveDocument(runner.consoleView.editorDocument)
PsiDocumentManager.getInstance(getProject()).commitAllDocuments() PsiDocumentManager.getInstance(project).commitAllDocuments()
} }
myFixture.configureFromExistingVirtualFile(consoleRunner.consoleFile.virtualFile) myFixture.configureFromExistingVirtualFile(runner.consoleFile.virtualFile)
myFixture.editor.caretModel.moveToOffset(myFixture.editor.document.getLineEndOffset(0)) myFixture.editor.caretModel.moveToOffset(myFixture.editor.document.getLineEndOffset(0))
testCompletion(file.readText(), getPlatform(), { completionType, count -> myFixture.complete(completionType, count) }) testCompletion(file.readText(), getPlatform(), { completionType, count -> myFixture.complete(completionType, count) })