Rewrite test class to make it work on Windows

Stop using dummy file and assert result with assertEqualsToFile().

Previous version didn't work on Windows because of `\r`.
This commit is contained in:
Nikolay Krasko
2017-07-19 13:18:15 +03:00
parent 4e76975a52
commit dd2a87dbf7
@@ -16,36 +16,27 @@
package org.jetbrains.kotlin.idea.intentions
import com.intellij.openapi.fileEditor.FileDocumentManager
import com.intellij.openapi.vfs.LocalFileSystem
import com.intellij.psi.PsiDocumentManager
import junit.framework.TestCase
import org.jetbrains.kotlin.idea.intentions.copyConcatenatedStringToClipboard.ConcatenatedStringGenerator
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
import org.jetbrains.kotlin.psi.KtBinaryExpression
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.psiUtil.collectDescendantsOfType
import org.jetbrains.kotlin.test.KotlinTestUtils
import java.io.File
/**
* Compare xxx.kt.result file with the result of ConcatenatedStringGenerator().create(KtBinaryExpression) where KtBinaryExpression is the last KtBinaryExpression of xxx.kt file
* Compare xxx.kt.result file with the result of ConcatenatedStringGenerator().create(KtBinaryExpression) where KtBinaryExpression is
* the last KtBinaryExpression of xxx.kt file
*/
abstract class AbstractConcatenatedStringGeneratorTest : KotlinLightCodeInsightFixtureTestCase() {
@Throws(Exception::class)
protected fun doTest(path: String) {
val mainFile = File(path)
val fileText = mainFile.readText()
val resultFile = File("$path.result")
val expectedText = resultFile.readText()
val vFile = LocalFileSystem.getInstance().findFileByPath(path) ?: return
val document = FileDocumentManager.getInstance().getDocument(vFile) ?: return
val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document) ?: return
val ktFile = KtPsiFactory(project).createAnalyzableFile("dummy.kt", fileText, psiFile)
val expression = ktFile.collectDescendantsOfType<KtBinaryExpression>().lastOrNull()
myFixture.configureByFile(path)
val expression = myFixture.file.collectDescendantsOfType<KtBinaryExpression>().lastOrNull()
TestCase.assertNotNull("No binary expression found: $path", expression)
val generatedString = ConcatenatedStringGenerator().create(expression!!)
TestCase.assertEquals("mismatch '$expectedText' - '$generatedString'", expectedText, generatedString)
KotlinTestUtils.assertEqualsToFile(File("$path.result"), generatedString)
}
}