[gradle] fix test: wait for import to finish before asserting results.

GitOrigin-RevId: e0321f5f6a14a84f257f36d345df528c7edbe591
This commit is contained in:
Nikita Skvortsov
2019-07-23 17:44:15 +03:00
committed by intellij-monorepo-bot
parent 0aca9ebfb1
commit 20ad06519a
3 changed files with 23 additions and 9 deletions
@@ -35,9 +35,19 @@ interface ExternalSystemSetupProjectTestCase {
fun assertDefaultProjectSettings(project: Project)
fun attachProject(project: Project, projectFile: VirtualFile)
fun attachProject(project: Project, projectFile: VirtualFile) {
doAttachProject(project, projectFile)
waitForImportCompletion(project)
}
fun attachProjectFromScript(project: Project, projectFile: VirtualFile)
fun attachProjectFromScript(project: Project, projectFile: VirtualFile) {
doAttachProjectFromScript(project, projectFile)
waitForImportCompletion(project)
}
fun doAttachProject(project: Project, projectFile: VirtualFile)
fun doAttachProjectFromScript(project: Project, projectFile: VirtualFile)
fun waitForImportCompletion(project: Project)
fun openPlatformProjectFrom(projectDirectory: VirtualFile): Project {
return invokeAndWaitIfNeeded {
@@ -1,6 +1,7 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.plugins.gradle.importing
import com.intellij.openapi.application.invokeAndWaitIfNeeded
import com.intellij.openapi.externalSystem.action.AttachExternalProjectAction
import com.intellij.openapi.externalSystem.importing.ExternalSystemSetupProjectTest
import com.intellij.openapi.externalSystem.importing.ExternalSystemSetupProjectTestCase
@@ -8,6 +9,7 @@ import com.intellij.openapi.externalSystem.model.ProjectSystemId
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.testFramework.PlatformTestUtil
import org.jetbrains.plugins.gradle.action.ImportProjectFromScriptAction
import org.jetbrains.plugins.gradle.settings.GradleSettings
import org.jetbrains.plugins.gradle.util.GradleConstants.SYSTEM_ID
@@ -48,14 +50,18 @@ class GradleSetupProjectTest : ExternalSystemSetupProjectTest, GradleImportingTe
assertEquals(settings.storeProjectFilesExternally, true)
}
override fun attachProject(project: Project, projectFile: VirtualFile) {
override fun doAttachProject(project: Project, projectFile: VirtualFile) {
AttachExternalProjectAction().perform(project, selectedFile = projectFile)
}
override fun attachProjectFromScript(project: Project, projectFile: VirtualFile) {
override fun doAttachProjectFromScript(project: Project, projectFile: VirtualFile) {
ImportProjectFromScriptAction().perform(project, selectedFile = projectFile)
}
override fun waitForImportCompletion(project: Project) {
invokeAndWaitIfNeeded { PlatformTestUtil.dispatchAllEventsInIdeEventQueue() }
}
companion object {
/**
* It's sufficient to run the test against one gradle version
@@ -33,17 +33,15 @@ class MavenSetupProjectTest : ExternalSystemSetupProjectTest, MavenImportingTest
override fun assertDefaultProjectSettings(project: Project) {
}
override fun attachProject(project: Project, projectFile: VirtualFile) {
override fun doAttachProject(project: Project, projectFile: VirtualFile) {
AddManagedFilesAction().perform(project, selectedFile = projectFile)
waitForImportCompletion(project)
}
override fun attachProjectFromScript(project: Project, projectFile: VirtualFile) {
override fun doAttachProjectFromScript(project: Project, projectFile: VirtualFile) {
AddFileAsMavenProjectAction().perform(project, selectedFile = projectFile)
waitForImportCompletion(project)
}
private fun waitForImportCompletion(project: Project) {
override fun waitForImportCompletion(project: Project) {
invokeAndWaitIfNeeded {
val projectsManager = MavenProjectsManager.getInstance(project)
projectsManager.waitForResolvingCompletion()