Test for Gradle and Maven migration (KT-23401)

This commit is contained in:
Nikolay Krasko
2018-07-31 00:04:21 +03:00
parent 7aadf95f66
commit 79ad0ea2ef
3 changed files with 230 additions and 1 deletions
@@ -0,0 +1,114 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.maven
import com.intellij.openapi.application.runReadAction
import com.intellij.openapi.application.runWriteAction
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiManager
import org.jetbrains.kotlin.config.ApiVersion
import org.jetbrains.kotlin.config.LanguageVersion
import org.jetbrains.kotlin.idea.configuration.KotlinMigrationProjectComponent
import org.jetbrains.kotlin.idea.configuration.MigrationInfo
import org.jetbrains.kotlin.test.testFramework.runInEdtAndWait
import org.junit.Assert
import java.io.File
class MavenMigrateTest : MavenImportingTestCase() {
private val kotlinVersion = "1.1.3"
override fun setUp() {
super.setUp()
repositoryPath = File(myDir, "repo").path
createStdProjectFolders()
}
fun testMigrateApiAndLanguageVersions() {
val pomFile = createProjectPom(
"""
<groupId>test</groupId>
<artifactId>project</artifactId>
<version>1.0.0</version>
<properties>
<kotlin.version>1.2.50</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${'$'}{kotlin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${'$'}{kotlin.version}</version>
</plugin>
</plugins>
</build>
""".trimIndent()
)
importProject()
val document = runReadAction {
val pomPsiFile = PsiManager.getInstance(myProject).findFile(pomFile) ?: error("Can't find psi file for pom file")
PsiDocumentManager.getInstance(myProject).getDocument(pomPsiFile) ?: error("Can't find document for pom file")
}
runInEdtAndWait {
runWriteAction {
document.setText(
MavenTestCase.createPomXml(
"""
<groupId>test</groupId>
<artifactId>project</artifactId>
<version>1.0.0</version>
<properties>
<kotlin.version>1.2.50</kotlin.version>
<kotlin.compiler.apiVersion>1.3</kotlin.compiler.apiVersion>
<kotlin.compiler.languageVersion>1.3</kotlin.compiler.languageVersion>
</properties>
<dependencies>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${'$'}{kotlin.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>${'$'}{kotlin.version}/version>
</plugin>
</plugins>
</build>
""".trimIndent()
)
)
}
}
importProject()
val actualMigrationInfo = KotlinMigrationProjectComponent.getInstance(myProject).requestLastMigrationInfo()
Assert.assertEquals(
MigrationInfo.create("1.2.50", ApiVersion.KOTLIN_1_2, LanguageVersion.KOTLIN_1_2,
newApiVersion = ApiVersion.KOTLIN_1_3, newLanguageVersion = LanguageVersion.KOTLIN_1_3),
actualMigrationInfo)
}
}