[Gradle|Sync|Test] cleanup: migrated tests on the source roots assertions

GitOrigin-RevId: 5f749fc5c1970ef22d38356f64d65f05915a46c3
This commit is contained in:
Sergei Vorobyov
2024-07-12 19:06:37 +02:00
committed by intellij-monorepo-bot
parent 323f3a0015
commit a1c5c737ba
6 changed files with 752 additions and 611 deletions

View File

@@ -13,5 +13,6 @@
<orderEntry type="module" module-name="intellij.platform.ide.util.io" />
<orderEntry type="library" name="assertJ" level="project" />
<orderEntry type="module" module-name="intellij.java.impl" />
<orderEntry type="module" module-name="intellij.platform.workspace.jps" />
</component>
</module>

View File

@@ -12,6 +12,7 @@ import com.intellij.openapi.externalSystem.importing.ImportSpecBuilder;
import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.ExternalProjectInfo;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.model.project.ExternalSystemSourceType;
import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskId;
import com.intellij.openapi.externalSystem.model.task.ExternalSystemTaskNotificationListener;
@@ -39,11 +40,13 @@ import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.platform.externalSystem.testFramework.utils.module.ExternalSystemSourceRootAssertion;
import com.intellij.psi.PsiElement;
import com.intellij.testFramework.IndexingTestUtil;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.RunAll;
import com.intellij.testFramework.utils.module.ModuleAssertions;
import com.intellij.testFramework.utils.module.SourceRootAssertions;
import com.intellij.usageView.UsageInfo;
import com.intellij.util.CommonProcessors;
import com.intellij.util.containers.ContainerUtil;
@@ -58,8 +61,10 @@ import java.io.PrintStream;
import java.nio.file.Path;
import java.util.*;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
import java.util.function.Predicate;
import static com.intellij.platform.externalSystem.testFramework.utils.module.ExternalSystemSourceRootAssertions.getExType;
import static com.intellij.testFramework.EdtTestUtil.runInEdtAndGet;
import static com.intellij.testFramework.EdtTestUtil.runInEdtAndWait;
@@ -116,36 +121,21 @@ public abstract class ExternalSystemImportingTestCase extends ExternalSystemTest
ModuleAssertions.assertContentRoots(myProject, moduleName, expectedRootPaths);
}
protected void assertSources(String moduleName, String... expectedSources) {
assertSourceFolders(moduleName, JavaSourceRootType.SOURCE, Arrays.asList(expectedSources));
protected void assertNoSourceRoots(String moduleName) {
assertSourceRoots(moduleName, it -> {});
}
protected void assertResources(String moduleName, String... expectedSources) {
assertSourceFolders(moduleName, JavaResourceRootType.RESOURCE, Arrays.asList(expectedSources));
protected void assertSourceRoots(String moduleName, Consumer<ExternalSystemSourceRootAssertion<String>> applyAssertion) {
ExternalSystemSourceRootAssertion.assertSourceRoots(applyAssertion, (type, expectedRoots) -> {
assertSourceRoots(moduleName, type, expectedRoots);
});
}
protected void assertTestSources(String moduleName, String... expectedSources) {
assertSourceFolders(moduleName, JavaSourceRootType.TEST_SOURCE, Arrays.asList(expectedSources));
}
protected void assertTestResources(String moduleName, String... expectedSources) {
assertSourceFolders(moduleName, JavaResourceRootType.TEST_RESOURCE, Arrays.asList(expectedSources));
}
protected void assertGeneratedSources(String moduleName, String... expectedSources) {
assertGeneratedSourceFolders(moduleName, JavaSourceRootType.SOURCE, Arrays.asList(expectedSources));
}
protected void assertGeneratedTestSources(String moduleName, String... expectedSources) {
assertGeneratedSourceFolders(moduleName, JavaSourceRootType.TEST_SOURCE, Arrays.asList(expectedSources));
}
protected void assertGeneratedResources(String moduleName, String... expectedSources) {
assertGeneratedResourceFolders(moduleName, JavaResourceRootType.RESOURCE, Arrays.asList(expectedSources));
}
protected void assertGeneratedTestResources(String moduleName, String... expectedSources) {
assertGeneratedResourceFolders(moduleName, JavaResourceRootType.TEST_RESOURCE, Arrays.asList(expectedSources));
protected void assertSourceRoots(String moduleName, ExternalSystemSourceType type, List<String> expectedRoots) {
var expectedRootPaths = ContainerUtil.map(expectedRoots, it -> Path.of(it));
SourceRootAssertions.assertSourceRoots(myProject, moduleName, it -> type.equals(getExType(it)), expectedRootPaths, () ->
"%s source root of type %s".formatted(moduleName, type)
);
}
protected void assertExcludes(String moduleName, String... expectedExcludes) {

View File

@@ -1,6 +1,7 @@
// Copyright 2000-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 file.
package org.jetbrains.plugins.gradle.compiler;
import com.intellij.openapi.externalSystem.model.project.ExternalSystemSourceType;
import org.junit.Test;
import java.io.IOException;
@@ -345,12 +346,18 @@ public class GradleJpsResourceProcessingTest extends GradleJpsCompilingTestCase
);
assertModules("project", "project.main", "project.test", "project.integrationTest");
assertSources("project.main", path("src/main/java"));
assertResources("project.main", path("src/main/resources"));
assertTestSources("project.test", path("src/test/java"));
assertTestResources("project.test", path("src/test/resources"));
assertSources("project.integrationTest", path("src/integrationTest/java"));
assertResources("project.integrationTest", path("src/integrationTest/resources"));
assertSourceRoots("project.main", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
);
assertSourceRoots("project.test", it -> it
.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
);
assertSourceRoots("project.integrationTest", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/integrationTest/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/integrationTest/resources"))
);
compileModules("project.main", "project.test", "project.integrationTest");
@@ -391,12 +398,18 @@ public class GradleJpsResourceProcessingTest extends GradleJpsCompilingTestCase
);
assertModules("project", "project.main", "project.test", "project.integrationTest");
assertSources("project.main", path("src/main/java"));
assertResources("project.main", path("src/main/resources"));
assertTestSources("project.test", path("src/test/java"));
assertTestResources("project.test", path("src/test/resources"));
assertSources("project.integrationTest", path("src/integrationTest/java"));
assertResources("project.integrationTest", path("src/integrationTest/resources"));
assertSourceRoots("project.main", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
);
assertSourceRoots("project.test", it -> it
.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
);
assertSourceRoots("project.integrationTest", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/integrationTest/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/integrationTest/resources"))
);
compileModules("project.main", "project.test", "project.integrationTest");
@@ -439,12 +452,18 @@ public class GradleJpsResourceProcessingTest extends GradleJpsCompilingTestCase
);
assertModules("project", "project.main", "project.test", "project.integrationTest");
assertSources("project.main", path("src/main/java"));
assertResources("project.main", path("src/main/resources"));
assertTestSources("project.test", path("src/test/java"));
assertTestResources("project.test", path("src/test/resources"));
assertSources("project.integrationTest", path("src/integrationTest/java"));
assertResources("project.integrationTest", path("src/integrationTest/resources"));
assertSourceRoots("project.main", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
);
assertSourceRoots("project.test", it -> it
.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
);
assertSourceRoots("project.integrationTest", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/integrationTest/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/integrationTest/resources"))
);
compileModules("project.main", "project.test", "project.integrationTest");
@@ -486,12 +505,18 @@ public class GradleJpsResourceProcessingTest extends GradleJpsCompilingTestCase
);
assertModules("project", "project.main", "project.test", "project.integrationTest");
assertSources("project.main", path("src/main/java"));
assertResources("project.main", path("src/main/resources"));
assertTestSources("project.test", path("src/test/java"));
assertTestResources("project.test", path("src/test/resources"));
assertTestSources("project.integrationTest", path("src/integrationTest/java"));
assertTestResources("project.integrationTest", path("src/integrationTest/resources"));
assertSourceRoots("project.main", it -> it
.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
);
assertSourceRoots("project.test", it -> it
.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
);
assertSourceRoots("project.integrationTest", it -> it
.sourceRoots(ExternalSystemSourceType.TEST, path("src/integrationTest/java"))
.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/integrationTest/resources"))
);
compileModules("project.main", "project.test", "project.integrationTest");

View File

@@ -4,6 +4,7 @@ package org.jetbrains.plugins.gradle.quarantine.importing
import com.intellij.compiler.CompilerConfiguration
import com.intellij.compiler.CompilerConfigurationImpl
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.externalSystem.model.project.ExternalSystemSourceType
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.util.Computable
@@ -173,29 +174,34 @@ class AnnotationProcessorConfigImportingTest: GradleImportingTestCase() {
// import with default settings: delegate build to gradle
importProject()
assertSources("project.main", path(gradleGeneratedDir))
assertGeneratedSources("project.main", path(gradleGeneratedDir))
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path(gradleGeneratedDir))
}
currentExternalProjectSettings.delegatedBuild = false
// import with build by intellij idea
importProject()
assertSources("project.main", path(ideaGeneratedDir))
assertGeneratedSources("project.main", path(ideaGeneratedDir))
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path(ideaGeneratedDir))
}
// subscribe to build delegation changes in current project
(ExternalSystemApiUtil.getManager(GradleConstants.SYSTEM_ID) as GradleManager).runActivity(myProject)
// switch delegation to gradle
currentExternalProjectSettings.delegatedBuild = true
GradleSettings.getInstance(myProject).publisher.onBuildDelegationChange(true, projectPath)
assertSources("project.main", path(gradleGeneratedDir))
assertGeneratedSources("project.main", path(gradleGeneratedDir))
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path(gradleGeneratedDir))
}
// switch delegation to idea
currentExternalProjectSettings.delegatedBuild = false
GradleSettings.getInstance(myProject).publisher.onBuildDelegationChange(false, projectPath)
assertSources("project.main", path(ideaGeneratedDir))
assertGeneratedSources("project.main", path(ideaGeneratedDir))
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path(ideaGeneratedDir))
}
}
@Test
@@ -406,40 +412,28 @@ class AnnotationProcessorConfigImportingTest: GradleImportingTestCase() {
assertModules("project", "project.main", "project.test", "project.testFixtures")
assertContentRoots("project", projectPath)
assertSources("project")
assertResources("project")
assertTestSources("project")
assertTestResources("project")
assertNoSourceRoots("project")
assertContentRoots("project.main", path("src/main"), path("$annotationProcessor/java/main"))
assertSources("project.main", path("src/main/java"), path("$annotationProcessor/java/main"))
assertGeneratedSources("project.main", path("$annotationProcessor/java/main"))
assertResources("project.main", path("src/main/resources"))
assertGeneratedResources("project.main")
assertTestSources("project.main")
assertGeneratedTestSources("project.main")
assertTestResources("project.main")
assertGeneratedTestResources("project.main")
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path("$annotationProcessor/java/main"))
it.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
}
assertContentRoots("project.test", path("src/test"), path("$annotationProcessor/java/test"))
assertSources("project.test")
assertGeneratedSources("project.test")
assertResources("project.test")
assertGeneratedResources("project.test")
assertTestSources("project.test", path("src/test/java"), path("$annotationProcessor/java/test"))
assertGeneratedTestSources("project.test", path("$annotationProcessor/java/test"))
assertTestResources("project.test", path("src/test/resources"))
assertGeneratedTestResources("project.test")
assertSourceRoots("project.test") {
it.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
it.sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("$annotationProcessor/java/test"))
it.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
}
assertContentRoots("project.testFixtures", path("src/testFixtures"), path("$annotationProcessor/java/testFixtures"))
assertSources("project.testFixtures")
assertGeneratedSources("project.testFixtures")
assertResources("project.testFixtures")
assertGeneratedResources("project.testFixtures")
assertTestSources("project.testFixtures", path("src/testFixtures/java"), path("$annotationProcessor/java/testFixtures"))
assertGeneratedTestSources("project.testFixtures", path("$annotationProcessor/java/testFixtures"))
assertTestResources("project.testFixtures", path("src/testFixtures/resources"))
assertGeneratedTestResources("project.testFixtures")
assertSourceRoots("project.testFixtures") {
it.sourceRoots(ExternalSystemSourceType.TEST, path("src/testFixtures/java"))
it.sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("$annotationProcessor/java/testFixtures"))
it.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/testFixtures/resources"))
}
}
@Test
@@ -479,39 +473,27 @@ class AnnotationProcessorConfigImportingTest: GradleImportingTestCase() {
assertModules("project", "project.main", "project.test", "project.integrationTest")
assertContentRoots("project", projectPath)
assertSources("project")
assertResources("project")
assertTestSources("project")
assertTestResources("project")
assertNoSourceRoots("project")
assertContentRoots("project.main", path("src/main"), path("$annotationProcessor/java/main"))
assertSources("project.main", path("src/main/java"), path("$annotationProcessor/java/main"))
assertGeneratedSources("project.main", path("$annotationProcessor/java/main"))
assertResources("project.main", path("src/main/resources"))
assertGeneratedResources("project.main")
assertTestSources("project.main")
assertGeneratedTestSources("project.main")
assertTestResources("project.main")
assertGeneratedTestResources("project.main")
assertSourceRoots("project.main") {
it.sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
it.sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path("$annotationProcessor/java/main"))
it.sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
}
assertContentRoots("project.test", path("src/test"), path("$annotationProcessor/java/test"))
assertSources("project.test")
assertGeneratedSources("project.test")
assertResources("project.test")
assertGeneratedResources("project.test")
assertTestSources("project.test", path("src/test/java"), path("$annotationProcessor/java/test"))
assertGeneratedTestSources("project.test", path("$annotationProcessor/java/test"))
assertTestResources("project.test", path("src/test/resources"))
assertGeneratedTestResources("project.test")
assertSourceRoots("project.test") {
it.sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
it.sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("$annotationProcessor/java/test"))
it.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
}
assertContentRoots("project.integrationTest", path("src/integrationTest"), path("$annotationProcessor/java/integrationTest"))
assertSources("project.integrationTest")
assertGeneratedSources("project.integrationTest")
assertResources("project.integrationTest")
assertGeneratedResources("project.integrationTest")
assertTestSources("project.integrationTest", path("src/integrationTest/java"), path("$annotationProcessor/java/integrationTest"))
assertGeneratedTestSources("project.integrationTest", path("$annotationProcessor/java/integrationTest"))
assertTestResources("project.integrationTest", path("src/integrationTest/resources"))
assertGeneratedTestResources("project.integrationTest")
assertSourceRoots("project.integrationTest") {
it.sourceRoots(ExternalSystemSourceType.TEST, path("src/integrationTest/java"))
it.sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("$annotationProcessor/java/integrationTest"))
it.sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/integrationTest/resources"))
}
}
}

View File

@@ -358,14 +358,9 @@ public abstract class GradleImportingTestCase extends JavaExternalSystemImportin
importProject();
}
protected void importProjectUsingSingeModulePerGradleProject(@NonNls String config, Boolean skipIndexing)
throws IOException {
getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
importProject(config, skipIndexing);
}
protected void importProjectUsingSingeModulePerGradleProject(@NonNls String config) throws IOException {
importProjectUsingSingeModulePerGradleProject(config, null);
getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
importProject(config);
}
@Override