From 8fb82c2cb7e31734754cbdfa8dec7698a3ca56f6 Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Mon, 15 Jun 2020 17:01:06 +0300 Subject: [PATCH] 202: Fix missing formatting in nJ2K tests Formatting in nJ2K tests (actually it still works in IDE) was broken by dee00ac38946b8a8a5165dffd083e67c85935723 in intellij --- ...ractJavaToKotlinConverterSingleFileTest.kt | 24 ++++++++++++------- ...ctNewJavaToKotlinConverterMultiFileTest.kt | 13 ++++++---- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt index aadb482513e..2f0384c0c2f 100644 --- a/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt +++ b/j2k/tests/org/jetbrains/kotlin/j2k/AbstractJavaToKotlinConverterSingleFileTest.kt @@ -7,9 +7,11 @@ package org.jetbrains.kotlin.j2k import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Computable import com.intellij.openapi.util.io.FileUtil import com.intellij.psi.PsiJavaFile import com.intellij.psi.codeStyle.CodeStyleManager +import com.intellij.psi.impl.source.PostprocessReformattingAspect import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor @@ -50,15 +52,19 @@ abstract class AbstractJavaToKotlinConverterSingleFileTest : AbstractJavaToKotli settings.openByDefault = it.toBoolean() } - val rawConverted = when (prefix) { - "expression" -> expressionToKotlin(javaCode, settings, project) - "statement" -> statementToKotlin(javaCode, settings, project) - "method" -> methodToKotlin(javaCode, settings, project) - "class" -> fileToKotlin(javaCode, settings, project) - "file" -> fileToKotlin(javaCode, settings, project) - else -> throw IllegalStateException("Specify what is it: file, class, method, statement or expression " + - "using the first line of test data file") - } + val rawConverted = WriteCommandAction.runWriteCommandAction(project, Computable { + PostprocessReformattingAspect.getInstance(project).doPostponedFormatting() + return@Computable when (prefix) { + "expression" -> expressionToKotlin(javaCode, settings, project) + "statement" -> statementToKotlin(javaCode, settings, project) + "method" -> methodToKotlin(javaCode, settings, project) + "class" -> fileToKotlin(javaCode, settings, project) + "file" -> fileToKotlin(javaCode, settings, project) + else -> throw IllegalStateException( + "Specify what is it: file, class, method, statement or expression using the first line of test data file" + ) + } + }) val reformatInFun = prefix in setOf("element", "expression", "statement") diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterMultiFileTest.kt b/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterMultiFileTest.kt index 38cff6463af..355f73e2d35 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterMultiFileTest.kt +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterMultiFileTest.kt @@ -5,8 +5,11 @@ package org.jetbrains.kotlin.nj2k +import com.intellij.openapi.command.WriteCommandAction +import com.intellij.openapi.util.Computable import com.intellij.psi.PsiJavaFile import com.intellij.psi.PsiManager +import com.intellij.psi.impl.source.PostprocessReformattingAspect import org.jetbrains.kotlin.idea.formatter.commitAndUnblockDocument import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor @@ -42,10 +45,12 @@ abstract class AbstractNewJavaToKotlinConverterMultiFileTest : AbstractJavaToKot } val converter = NewJavaToKotlinConverter(project, module, ConverterSettings.defaultSettings, IdeaJavaToKotlinServices) - val (results, externalCodeProcessor) = converter.filesToKotlin( - psiFilesToConvert, - NewJ2kPostProcessor() - ) + + val (results, externalCodeProcessor) = + WriteCommandAction.runWriteCommandAction(project, Computable { + PostprocessReformattingAspect.getInstance(project).doPostponedFormatting() + return@Computable converter.filesToKotlin(psiFilesToConvert, NewJ2kPostProcessor()) + }) val process = externalCodeProcessor?.prepareWriteOperation(progress = null) fun expectedResultFile(i: Int) = File(filesToConvert[i].path.replace(".java", ".kt"))