diff --git a/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml b/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
index 91f1daaddd61..18f1a8675a59 100644
--- a/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
+++ b/platform/external-system-api/testFramework/intellij.platform.externalSystem.testFramework.iml
@@ -13,5 +13,6 @@
+
\ No newline at end of file
diff --git a/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/ExternalSystemImportingTestCase.java b/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/ExternalSystemImportingTestCase.java
index 01d2a779fff3..11db3f5ed4bf 100644
--- a/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/ExternalSystemImportingTestCase.java
+++ b/platform/external-system-api/testFramework/src/com/intellij/platform/externalSystem/testFramework/ExternalSystemImportingTestCase.java
@@ -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> 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 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) {
diff --git a/plugins/gradle/java/testSources/compiler/GradleJpsResourceProcessingTest.java b/plugins/gradle/java/testSources/compiler/GradleJpsResourceProcessingTest.java
index 0229837b8f6c..09f577c7dcb5 100644
--- a/plugins/gradle/java/testSources/compiler/GradleJpsResourceProcessingTest.java
+++ b/plugins/gradle/java/testSources/compiler/GradleJpsResourceProcessingTest.java
@@ -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");
diff --git a/plugins/gradle/java/testSources/quarantine/importing/AnnotationProcessorConfigImportingTest.kt b/plugins/gradle/java/testSources/quarantine/importing/AnnotationProcessorConfigImportingTest.kt
index b9fc07d05777..6621a67b8ea2 100644
--- a/plugins/gradle/java/testSources/quarantine/importing/AnnotationProcessorConfigImportingTest.kt
+++ b/plugins/gradle/java/testSources/quarantine/importing/AnnotationProcessorConfigImportingTest.kt
@@ -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"))
+ }
}
}
\ No newline at end of file
diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleFoldersImportingTest.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleFoldersImportingTest.java
index fe86d793d80e..597cf1163893 100644
--- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleFoldersImportingTest.java
+++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleFoldersImportingTest.java
@@ -1,6 +1,7 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.plugins.gradle.importing;
+import com.intellij.openapi.externalSystem.model.project.ExternalSystemSourceType;
import com.intellij.openapi.externalSystem.service.project.manage.SourceFolderManager;
import com.intellij.openapi.externalSystem.service.project.manage.SourceFolderManagerImpl;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
@@ -17,20 +18,15 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jps.model.java.JavaSourceRootType;
import org.jetbrains.jps.model.module.JpsModuleSourceRootType;
-import org.jetbrains.plugins.gradle.GradleManager;
-import org.jetbrains.plugins.gradle.frameworkSupport.buildscript.GradleBuildScriptBuilder;
import org.jetbrains.plugins.gradle.service.project.data.GradleExcludeBuildFilesDataService;
-import org.jetbrains.plugins.gradle.settings.GradleProjectSettings;
import org.jetbrains.plugins.gradle.settings.GradleSettings;
import org.jetbrains.plugins.gradle.tooling.annotation.TargetVersions;
-import org.jetbrains.plugins.gradle.util.GradleConstants;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.doWriteAction;
-import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.getManager;
/**
* @author Vladislav.Soroka
@@ -40,61 +36,165 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
@Test
public void testUnsupportedTypesInDsl() throws Exception {
importProject(
- createBuildScriptBuilder().addPostfix(
- "import org.gradle.api.internal.FactoryNamedDomainObjectContainer;",
- "import org.gradle.internal.reflect.Instantiator;",
- "class MyObj implements Named {",
- " String myName;",
- " public MyObj(String name) {",
- " myName = namse",
- " }",
- " ",
- " public String getName() {",
- " return myName",
- " }",
- "}",
- "project.extensions.create(",
- " \"sourceSets\",",
- " FactoryNamedDomainObjectContainer,",
- " MyObj,",
- " services.get(Instantiator),",
- " {action -> }",
- " ) ",
- "sourceSets {",
- " println \"Hello World!\"",
- "}"
- ).generate());
+ """
+ import org.gradle.api.internal.FactoryNamedDomainObjectContainer;
+ import org.gradle.internal.reflect.Instantiator;
+ class MyObj implements Named {
+ String myName;
+ public MyObj(String name) {
+ myName = namse
+ }
+
+ public String getName() {
+ return myName
+ }
+ }
+ project.extensions.create(
+ "sourceSets",
+ FactoryNamedDomainObjectContainer,
+ MyObj,
+ services.get(Instantiator),
+ {action -> }
+ )
+ sourceSets {
+ println "Hello World!"
+ }
+ """
+ );
}
@Test
- public void testBaseJavaProject() throws Exception {
- getCurrentExternalProjectSettings().setDelegatedBuild(false);
+ public void testImportBaseJavaProjectInNonDelegatedAndModulePerSourceSetModes() throws Exception {
createDefaultDirs();
- importProject(
- "apply plugin: 'java'"
- );
- assertNotDelegatedBaseJavaProject();
-
- getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
- importProject();
- assertNotDelegatedMergedBaseJavaProject();
-
- getCurrentExternalProjectSettings().setDelegatedBuild(true);
- importProject();
- assertDelegatedMergedBaseJavaProject();
+ createProjectSubFile("build.gradle", "apply plugin: 'java'");
getCurrentExternalProjectSettings().setDelegatedBuild(false);
- // subscribe to the GradleSettings changes topic
- ((GradleManager)getManager(GradleConstants.SYSTEM_ID)).runActivity(myProject);
- GradleSettings.getInstance(myProject).getPublisher().onBuildDelegationChange(false, getProjectPath());
- assertNotDelegatedMergedBaseJavaProject();
-
getCurrentExternalProjectSettings().setResolveModulePerSourceSet(true);
importProject();
- assertNotDelegatedBaseJavaProject();
+
+ assertModules("project", "project.main", "project.test");
+
+ assertNoExcludePatterns("project", "build.gradle");
+ assertExcludes("project", ".gradle", "build", "out");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+ assertModuleOutputs("project.main", path("out/production/classes"), path("out/production/resources"));
+ assertModuleOutput("project.main", path("out/production/classes"), "");
+
+ assertModuleOutputs("project.test", path("out/test/classes"), path("out/test/resources"));
+ assertModuleOutput("project.test", "", path("out/test/classes"));
+ }
+
+ @Test
+ public void testImportBaseJavaProjectInNonDelegatedAndModulePerProjectModes() throws Exception {
+ createDefaultDirs();
+ createProjectSubFile("build.gradle", "apply plugin: 'java'");
+
+ getCurrentExternalProjectSettings().setDelegatedBuild(false);
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
+
+ assertModules("project");
+
+ assertExcludes("project", ".gradle", "build", "out");
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+ assertModuleOutputs("project",
+ path("out/production/classes"),
+ path("out/production/resources"),
+ path("out/test/classes"),
+ path("out/test/resources"));
+ assertModuleOutput("project",
+ path("out/production/classes"),
+ path("out/test/classes"));
+ }
+
+ @Test
+ public void testImportBaseJavaProjectInDelegatedAndModulePerProjectModes() throws Exception {
+ createDefaultDirs();
+ createProjectSubFile("build.gradle", "apply plugin: 'java'");
+
getCurrentExternalProjectSettings().setDelegatedBuild(true);
- GradleSettings.getInstance(myProject).getPublisher().onBuildDelegationChange(true, getProjectPath());
- assertDelegatedBaseJavaProject();
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
+
+ assertModules("project");
+
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+ assertModuleOutputs("project",
+ path("build/classes/java/main"),
+ path("build/resources/main"),
+ path("build/classes/java/test"),
+ path("build/resources/test"));
+ assertModuleOutput("project",
+ path("build/classes/java/main"),
+ path("build/classes/java/test"));
+ }
+
+ @Test
+ public void testImportBaseJavaProjectInDelegatedAndModulePerSourceSetModes() throws Exception {
+ createDefaultDirs();
+ createProjectSubFile("build.gradle", "apply plugin: 'java'");
+
+ getCurrentExternalProjectSettings().setDelegatedBuild(true);
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(true);
+ importProject();
+
+ assertModules("project", "project.main", "project.test");
+
+ assertNoExcludePatterns("project", "build.gradle");
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+ assertModuleOutputs("project.main", path("build/classes/java/main"), path("build/resources/main"));
+ assertModuleOutput("project.main", path("build/classes/java/main"), "");
+
+ assertModuleOutputs("project.test", path("build/classes/java/test"), path("build/resources/test"));
+ assertModuleOutput("project.test", "", path("build/classes/java/test"));
}
@Test
@@ -104,101 +204,64 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
createProjectSubFile("gradle.properties", "org.gradle.warning.mode=fail");
importProject("apply plugin: 'java'");
- assertDelegatedBaseJavaProject();
- }
-
- private void assertNotDelegatedBaseJavaProject() {
assertModules("project", "project.main", "project.test");
+
assertNoExcludePatterns("project", "build.gradle");
+ assertExcludes("project", ".gradle", "build");
- assertDefaultGradleJavaProjectFolders();
-
- final String mainClassesOutputPath = "/out/production/classes";
- assertModuleOutputs("project.main",
- getProjectPath() + mainClassesOutputPath,
- getProjectPath() + "/out/production/resources");
- String testClassesOutputPath = "/out/test/classes";
- assertModuleOutputs("project.test",
- getProjectPath() + testClassesOutputPath,
- getProjectPath() + "/out/test/resources");
-
- assertModuleOutput("project.main", getProjectPath() + mainClassesOutputPath, "");
- assertModuleOutput("project.test", "", getProjectPath() + testClassesOutputPath);
- }
-
- private void assertDelegatedBaseJavaProject() {
- assertModules("project", "project.main", "project.test");
assertContentRoots("project", getProjectPath());
- assertNoExcludePatterns("project", "build.gradle");
+ assertNoSourceRoots("project");
- assertModuleOutputs("project.main",
- getProjectPath() + "/build/classes/java/main",
- getProjectPath() + "/build/resources/main");
- assertModuleOutput("project.main", getProjectPath() + "/build/classes/java/main", "");
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
- assertModuleOutputs("project.test",
- getProjectPath() + "/build/classes/java/test",
- getProjectPath() + "/build/resources/test");
- assertModuleOutput("project.test", "", getProjectPath() + "/build/classes/java/test");
- }
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
- private void assertNotDelegatedMergedBaseJavaProject() {
- assertModules("project");
+ assertModuleOutputs("project.main", path("build/classes/java/main"), path("build/resources/main"));
+ assertModuleOutput("project.main", path("build/classes/java/main"), "");
- assertDefaultGradleJavaProjectFoldersForMergedModule();
-
- assertModuleOutputs("project",
- getProjectPath() + "/out/production/classes",
- getProjectPath() + "/out/production/resources",
- getProjectPath() + "/out/test/classes",
- getProjectPath() + "/out/test/resources");
-
- assertModuleOutput("project", getProjectPath() + "/out/production/classes", getProjectPath() + "/out/test/classes");
- }
-
- private void assertDelegatedMergedBaseJavaProject() {
- assertModuleOutputs("project",
- getProjectPath() + "/build/classes/java/main",
- getProjectPath() + "/build/resources/main",
- getProjectPath() + "/build/classes/java/test",
- getProjectPath() + "/build/resources/test");
+ assertModuleOutputs("project.test", path("build/classes/java/test"), path("build/resources/test"));
+ assertModuleOutput("project.test", "", path("build/classes/java/test"));
}
@Test
public void testCompileOutputPathCustomizedWithIdeaPlugin() throws Exception {
createDefaultDirs();
- importProject(
- """
- apply plugin: 'java'
- apply plugin: 'idea'
- idea {
- module {
- outputDir = file(buildDir)
- }
- }"""
- );
+ createProjectSubFile("build.gradle", """
+ apply plugin: 'java'
+ apply plugin: 'idea'
+ idea {
+ module {
+ outputDir = file(buildDir)
+ }
+ }
+ """);
+ importProject();
assertModules("project", "project.main", "project.test");
+ assertModuleOutput("project.main", path("build/classes/java/main"), "");
+ assertModuleOutput("project.test", "", path("build/classes/java/test"));
- assertDefaultGradleJavaProjectFolders();
-
- assertModuleOutput("project.main", getProjectPath() + "/build/classes/java/main", "");
- assertModuleOutput("project.test", "", getProjectPath() + "/build/classes/java/test");
getCurrentExternalProjectSettings().setDelegatedBuild(false);
GradleSettings.getInstance(myProject).getPublisher().onBuildDelegationChange(false, getProjectPath());
- assertModuleOutput("project.main", getProjectPath() + "/build", "");
- assertModuleOutput("project.test", "", getProjectPath() + "/out/test/classes");
+ assertModules("project", "project.main", "project.test");
+ assertModuleOutput("project.main", path("build"), "");
+ assertModuleOutput("project.test", "", path("out/test/classes"));
+
getCurrentExternalProjectSettings().setDelegatedBuild(true);
-
- importProjectUsingSingeModulePerGradleProject();
-
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
-
- assertDefaultGradleJavaProjectFoldersForMergedModule();
-
- assertModuleOutput("project", getProjectPath() + "/build", getProjectPath() + "/build/classes/java/test");
+ assertModuleOutput("project", path("build"), path("build/classes/java/test"));
}
@Test
@@ -218,59 +281,114 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertModules("project", "project.main", "project.test");
- assertDefaultGradleJavaProjectFolders();
- assertGeneratedSources("project.main", path("src/main/java"));
- assertGeneratedTestSources("project.test", path("src/test/java"));
+ assertExcludes("project", ".gradle", "build");
- importProjectUsingSingeModulePerGradleProject();
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
- assertDefaultGradleJavaProjectFoldersForMergedModule();
- assertGeneratedSources("project", path("src/main/java"));
- assertGeneratedTestSources("project", path("src/test/java"));
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST_GENERATED, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
}
@Test
public void testCustomSourceSetsAreImported() throws Exception {
createDefaultDirs();
- createProjectSubFile("src/generated/java/G.java");
+ createProjectSubFile("src/customSourceSet/java/G.java");
importProject("""
apply plugin: 'java'
apply plugin: 'idea'
-
+
sourceSets {
- generated
+ customSourceSet
}""");
- assertModules("project", "project.main", "project.test", "project.generated");
+ assertModules("project", "project.main", "project.test", "project.customSourceSet");
- importProjectUsingSingeModulePerGradleProject();
- assertSources("project", path("src/generated/java"), path("src/main/java"));
- assertTestSources("project", path("src/test/java"));
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
+
+ assertContentRoots("project.customSourceSet", path("src/customSourceSet"));
+ assertSourceRoots("project.customSourceSet", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/customSourceSet/java"))
+ );
+
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
+
+ assertModules("project");
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"), path("src/customSourceSet/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
}
@Test
@TargetVersions("4.7+")
public void testResourceFoldersWithIdeaPluginInNonJavaProject() throws Exception {
createProjectSubDirs("python/src", "python/test", "python/resources");
- importProject(createBuildScriptBuilder().withIdeaPlugin()
- .addPostfix( "idea {",
- " module {",
- " sourceDirs += file('python/src')",
- " resourceDirs += file('python/resources')",
- " testSourceDirs += file('python/test')",
- " }",
- "}")
- .generate());
+ importProject(script(it -> it
+ .withIdeaPlugin()
+ .addPostfix(
+ """
+ idea {
+ module {
+ sourceDirs += file('python/src')
+ resourceDirs += file('python/resources')
+ testSourceDirs += file('python/test')
+ }
+ }
+ """
+ )
+ ));
assertModules("project");
assertContentRoots("project", getProjectPath());
-
- assertSources("project", path("python/src"));
- assertResources("project", path("python/resources"));
- assertTestSources("project", path("python/test"));
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("python/src"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("python/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("python/test"))
+ );
}
@Test
@@ -299,25 +417,39 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
);
assertModules("project", "project.main", "project.test");
- assertContentRoots("project", getProjectPath());
- assertExcludes("project", ".gradle", "build");
- assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"), path("src/main/src2"));
- assertResources("project.main", path("src/main/resources"), path("src/main/resources2"));
- assertContentRoots("project.test", path("src/test"));
- assertTestSources("project.test", path("src/test/java"), path("src/test/src2"));
- assertTestResources("project.test", path("src/test/resources"), path("src/test/resources2"));
- importProjectUsingSingeModulePerGradleProject();
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"), path("src/main/src2"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"), path("src/main/resources2"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"), path("src/test/src2"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"), path("src/test/resources2"))
+ );
+
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
- assertContentRoots("project", getProjectPath());
assertExcludes("project", ".gradle", "build");
- assertSources("project", path("src/main/java"), path("src/main/src2"));
- assertResources("project", path("src/main/resources"), path("src/main/resources2"));
- assertTestSources("project", path("src/test/java"), path("src/test/src2"));
- assertTestResources("project", path("src/test/resources"), path("src/test/resources2"));
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"), path("src/main/src2"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"), path("src/main/resources2"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"), path("src/test/src2"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"), path("src/test/resources2"))
+ );
}
@Test
@@ -350,20 +482,29 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
Runnable check = () -> {
assertModules("project", "project.main", "project.test", "project.customSourceSet");
- assertContentRoots("project", getProjectPath());
+
assertExcludes("project", ".gradle", "build");
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
assertContentRoots("project.test", path("src/test"));
- assertTestSources("project.test", path("src/test/java"), path("src/test/src2"));
- assertTestResources("project.test", path("src/test/resources"), path("src/test/resources2"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"), path("src/test/src2"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"), path("src/test/resources2"))
+ );
assertContentRoots("project.customSourceSet", path("src/customSourceSet"));
- assertTestSources("project.customSourceSet", path("src/customSourceSet/java"));
- assertTestResources("project.customSourceSet", path("src/customSourceSet/resources"));
+ assertSourceRoots("project.customSourceSet", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/customSourceSet/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/customSourceSet/resources"))
+ );
};
check.run();
@@ -391,7 +532,6 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
@Test
public void testProjectWithInheritedOutputDirs() throws Exception {
-
createDefaultDirs();
importProject(
"""
@@ -406,24 +546,48 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertModules("project", "project.main", "project.test");
- assertDefaultGradleJavaProjectFolders();
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src/main"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
+
+ assertContentRoots("project.test", path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleInheritedOutput("project");
assertModuleInheritedOutput("project.main");
assertModuleInheritedOutput("project.test");
- importProjectUsingSingeModulePerGradleProject();
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
- assertDefaultGradleJavaProjectFoldersForMergedModule();
+ assertExcludes("project", ".gradle", "build");
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleInheritedOutput("project");
}
@Test
public void testSourceFoldersMerge() throws Exception {
-
createDefaultDirs();
createProjectSubFile("src/B.java");
createProjectSubFile("src/resources/res.properties");
@@ -446,98 +610,153 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
);
assertModules("project", "project.main", "project.test");
- assertContentRoots("project", getProjectPath());
assertExcludes("project", ".gradle", "build");
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
assertContentRoots("project.main", path("src"));
- assertSources("project.main", path("src"), path("src/main/java"));
- assertResources("project.main", path("src/resources"), path("src/main/resources"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src"), path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/resources"), path("src/main/resources"))
+ );
assertContentRoots("project.test", path("test"), path("src/test"));
- assertTestSources("project.test", path("test"), path("src/test/java"));
- assertTestResources("project.test", path("test/resources"), path("src/test/resources"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("test"), path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("test/resources"), path("src/test/resources"))
+ );
+
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
- importProjectUsingSingeModulePerGradleProject();
assertModules("project");
- assertContentRoots("project", getProjectPath());
+
assertExcludes("project", ".gradle", "build");
- assertSources("project", path("src"), path("src/main/java"));
- assertResources("project", path("src/main/resources"), path("src/resources"));
- assertTestSources("project", path("test"), path("src/test/java"));
- assertTestResources("project", path("src/test/resources"), path("test/resources"));
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src"), path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/resources"), path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("test"), path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("test/resources"), path("src/test/resources"))
+ );
}
@Test
public void testRootsAreNotCreatedIfFilesAreMissing() throws Exception {
createProjectSubFile("src/main/java/A.java");
createProjectSubFile("src/test/resources/res.properties");
- importProjectUsingSingeModulePerGradleProject(
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject(
"""
apply plugin: 'java'
apply plugin: 'idea'
sourceSets.main.java.srcDirs file('src/generated/java')
idea.module {
generatedSourceDirs += file('src/generated/java')
- }"""
+ }
+ """
);
assertModules("project");
+
assertExcludes("project", ".gradle", "build");
- assertSources("project", path("src/main/java"));
- assertResources("project");
- assertTestSources("project");
- assertGeneratedSources("project");
- assertTestResources("project", path("src/test/resources"));
+
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
}
@Test
public void testRootsAreAddedWhenAFolderCreated() throws Exception {
createProjectSubFile("src/main/java/A.java");
- importProjectUsingSingeModulePerGradleProject("""
- apply plugin: 'java'
- apply plugin: 'idea'
- sourceSets.main.java.srcDirs file('src/generated/java')
- idea.module {
- generatedSourceDirs += file('src/generated/java')
- }""");
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject(
+ """
+ apply plugin: 'java'
+ apply plugin: 'idea'
+ sourceSets.main.java.srcDirs file('src/generated/java')
+ idea.module {
+ generatedSourceDirs += file('src/generated/java')
+ }
+ """
+ );
assertModules("project");
- assertSources("project", path("src/main/java"));
- assertTestSources("project");
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ );
createProjectSubFile("src/test/java/ATest.java");
waitForModulesUpdate();
- assertTestSources("project", path("src/test/java"));
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ );
createProjectSubFile("src/main/resources/res.txt");
waitForModulesUpdate();
- assertResources("project", path("src/main/resources"));
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ );
createProjectSubFile("src/generated/java/Generated.java");
waitForModulesUpdate();
- assertGeneratedSources("project", path("src/generated/java"));
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ .sourceRoots(ExternalSystemSourceType.SOURCE_GENERATED, path("src/generated/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ );
}
@Test
public void testRootsListenersAreUpdatedWithProjectModel() throws Exception {
createProjectSubFile("src/main/java/A.java");
- importProjectUsingSingeModulePerGradleProject("apply plugin: 'java'");
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject("apply plugin: 'java'");
assertModules("project");
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ );
- importProjectUsingSingeModulePerGradleProject(
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject(
"""
apply plugin: 'java'
+
sourceSets {
- test {
- java.srcDirs = [file('test-src/java')] }
- }""");
+ test {
+ java.srcDirs = [file('test-src/java')]
+ }
+ }
+ """);
+
+ assertModules("project");
+ assertContentRoots("project", getProjectPath());
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ );
createProjectSubFile("src/test/java/ATest.java");
createProjectSubFile("test-src/java/BTest.java");
waitForModulesUpdate();
- assertTestSources("project", path("test-src/java"));
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("test-src/java"))
+ );
}
@@ -548,44 +767,56 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
createProjectSubFile("test/Test.java");
createProjectSubFile("test/test.properties");
- importProject("""
- apply plugin: 'java'
- sourceSets {
- main {
- java {
- srcDir 'src'
- }
- resources {
- srcDir 'src'
- }
- }
- test {
- java {
- srcDir 'test'
- }
- resources {
- srcDir 'test'
- }
- }
- }
- """);
- assertModules("project", "project.main", "project.test");
- assertContentRoots("project", getProjectPath());
- assertContentRoots("project.main", path("src"));
- assertContentRoots("project.test", path("test"), path("src/test"));
- assertSources("project.main", path("src"));
- assertTestSources("project.test", path("test"));
- assertResources("project");
- assertTestResources("project");
+ importProject(
+ """
+ apply plugin: 'java'
+ sourceSets {
+ main {
+ java {
+ srcDir 'src'
+ }
+ resources {
+ srcDir 'src'
+ }
+ }
+ test {
+ java {
+ srcDir 'test'
+ }
+ resources {
+ srcDir 'test'
+ }
+ }
+ }
+ """
+ );
- importProjectUsingSingeModulePerGradleProject();
+ assertModules("project", "project.main", "project.test");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.main", path("src"));
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src"))
+ );
+
+ assertContentRoots("project.test", path("test"), path("src/test"));
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("test"))
+ );
+
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
+
assertContentRoots("project", getProjectPath());
- assertSources("project", path("src"));
- assertTestSources("project", path("test"));
- assertResources("project");
- assertTestResources("project");
+ assertSourceRoots("project", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src"))
+ .sourceRoots(ExternalSystemSourceType.TEST, path("test"))
+ );
}
@Test
@@ -636,9 +867,10 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertContentRoots("rootName.project1.project3",
FileUtil.toSystemIndependentName(new File(getProjectPath(), "project3").getAbsolutePath()));
- getCurrentExternalProjectSettings().setUseQualifiedModuleNames(false);
+ getCurrentExternalProjectSettings().setUseQualifiedModuleNames(false);
importProject();
+
assertModules("rootName",
"project1",
"project2",
@@ -664,28 +896,38 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
createProjectSubFile("../outer3/A.java", "class A {}");
createProjectSubFile("build/generated/A.java", "class A {}");
createProjectSubFile("../outer4/generated/A.java", "class A {}");
- GradleBuildScriptBuilder buildScript = createBuildScriptBuilder()
+ createProjectSubFile("build.gradle", script(it -> it
.withJavaPlugin()
.withIdeaPlugin()
.addPrefix(
- "sourceSets {",
- " generated.java.srcDirs += \"${buildDir}/generated\"",
- " generated.java.srcDirs += '../outer4/generated'",
- " main.java.srcDirs += '../outer1/src/main/java'",
- " main.java.srcDirs += '../outer1/src/main/kotlin'",
- " main.java.srcDirs += '../outer2/src/main/java'",
- " main.java.srcDirs += '../outer3'",
- "}")
- .addPrefix(
- "idea {",
- " module {",
- " inheritOutputDirs = true",
- " generatedSourceDirs += file(\"${buildDir}/generated\")",
- " generatedSourceDirs += file('../outer4/generated')",
- " }",
- "}");
- importPerSourceSet(true);
- importProject(buildScript.generate());
+ """
+ apply plugin: 'java'
+ apply plugin: 'idea'
+ sourceSets {
+ generated.java.srcDirs += "${buildDir}/generated"
+ generated.java.srcDirs += '../outer4/generated'
+ main.java.srcDirs += '../outer1/src/main/java'
+ main.java.srcDirs += '../outer1/src/main/kotlin'
+ main.java.srcDirs += '../outer2/src/main/java'
+ main.java.srcDirs += '../outer3'
+ }
+ """
+ ).addPrefix(
+ """
+ idea {
+ module {
+ inheritOutputDirs = true
+ generatedSourceDirs += file("${buildDir}/generated")
+ generatedSourceDirs += file('../outer4/generated')
+ }
+ }
+ """
+ )
+ ));
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(true);
+ importProject();
+
assertModules("project", "project.main", "project.test", "project.generated");
assertContentEntryExists("project", "");
assertContentEntryExists("project.main",
@@ -715,28 +957,36 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
createProjectSubFile("../outer3/A.java", "class A {}");
createProjectSubFile("build/generated/A.java", "class A {}");
createProjectSubFile("../outer4/generated/A.java", "class A {}");
- GradleBuildScriptBuilder buildScript = createBuildScriptBuilder()
+ createProjectSubFile("build.gradle", script(it -> it
.withJavaPlugin()
.withIdeaPlugin()
.addPrefix(
- "sourceSets {",
- " generated.java.srcDirs += \"${buildDir}/generated\"",
- " generated.java.srcDirs += '../outer4/generated'",
- " main.java.srcDirs += '../outer1/src/main/java'",
- " main.java.srcDirs += '../outer1/src/main/kotlin'",
- " main.java.srcDirs += '../outer2/src/main/java'",
- " main.java.srcDirs += '../outer3'",
- "}")
- .addPrefix(
- "idea {",
- " module {",
- " inheritOutputDirs = true",
- " generatedSourceDirs += file(\"${buildDir}/generated\")",
- " generatedSourceDirs += file('../outer4/generated')",
- " }",
- "}");
- importPerSourceSet(false);
- importProject(buildScript.generate());
+ """
+ sourceSets {
+ generated.java.srcDirs += "${buildDir}/generated"
+ generated.java.srcDirs += '../outer4/generated'
+ main.java.srcDirs += '../outer1/src/main/java'
+ main.java.srcDirs += '../outer1/src/main/kotlin'
+ main.java.srcDirs += '../outer2/src/main/java'
+ main.java.srcDirs += '../outer3'
+ }
+ """
+ ).addPrefix(
+ """
+ idea {
+ module {
+ inheritOutputDirs = true
+ generatedSourceDirs += file("${buildDir}/generated")
+ generatedSourceDirs += file('../outer4/generated')
+ }
+ }
+ """
+ )
+ ));
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
+
assertModules("project");
assertContentEntryExists("project",
"",
@@ -760,14 +1010,13 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
public void testMultipleSourcesConsistencyCompilerOutput() throws Exception {
createProjectSubFile("src/main/java/A.java", "class A {}");
createProjectSubFile("src/main/kotlin/A.kt", "class A {}");
- importPerSourceSet(false);
- importProject(
- createBuildScriptBuilder()
- .withMavenCentral()
- .withKotlinJvmPlugin()
- .withJavaLibraryPlugin()
- .generate()
- );
+
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject(script(it -> it
+ .withMavenCentral()
+ .withKotlinJvmPlugin()
+ .withJavaLibraryPlugin()
+ ));
assertModules("project");
assertContentEntryExists("project");
assertSourceExists("project", "src/main/java", "src/main/kotlin");
@@ -784,7 +1033,8 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
module {
excludeDirs += file('submodule')
}
- }"""
+ }
+ """
);
assertModules("project");
@@ -803,45 +1053,61 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
public void testSharedSourceFolders() throws Exception {
createProjectSubFile("settings.gradle", "include 'app1', 'app2'");
createProjectSubFile("shared/resources/resource.txt");
- createProjectSubFile("app1/build.gradle", createBuildScriptBuilder()
+ createProjectSubFile("app1/build.gradle", script(it -> it
.withJavaPlugin()
.addPostfix(
- "sourceSets {",
- " main.resources.srcDir '../shared/resources'",
- " }"
+ """
+ sourceSets {
+ main.resources.srcDir '../shared/resources'
+ }
+ """
)
- .generate());
- createProjectSubFile("app2/build.gradle", createBuildScriptBuilder()
+ ));
+ createProjectSubFile("app2/build.gradle", script(it -> it
.withJavaPlugin()
.addPostfix(
- "sourceSets {",
- " main.resources.srcDir '../shared/resources'",
- " }"
+ """
+ sourceSets {
+ main.resources.srcDir '../shared/resources'
+ }
+ """
)
- .generate());
+ ));
- importPerSourceSet(false);
- importProject("");
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project", "project.app1", "project.app2");
- assertResources("project.app1", getProjectPath() + "/shared/resources");
- assertResources("project.app2");
+
+ assertContentRoots("project", getProjectPath());
+ assertNoSourceRoots("project");
+
+ assertContentRoots("project.app1", path("app1"), path("shared/resources"));
+ assertSourceRoots("project.app1", it -> it
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("shared/resources"))
+ );
+
+ assertContentRoots("project.app2", path("app2"));
+ assertNoSourceRoots("project.app2");
}
@Test
public void testBuildFileAtSourceRootLayout() throws Exception {
createProjectSubDir("build");
- final GradleBuildScriptBuilder buildScript = createBuildScriptBuilder()
+ createProjectSubFile("build.gradle", script(it -> it
.withJavaPlugin()
.addPostfix(
- "sourceSets {",
- " main.java.srcDirs = ['.']",
- "}"
- );
+ """
+ sourceSets {
+ main.java.srcDirs = ['.']
+ }
+ """
+ )
+ ));
Registry.get(GradleExcludeBuildFilesDataService.REGISTRY_KEY).setValue(false);
- importPerSourceSet(true);
- importProject(buildScript.generate());
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(true);
+ importProject();
assertModules("project", "project.main", "project.test");
assertContentRoots("project");
assertContentRoots("project.main", getProjectPath());
@@ -849,16 +1115,16 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertNoExcludePatterns("project.main", getExternalSystemConfigFileName());
Registry.get(GradleExcludeBuildFilesDataService.REGISTRY_KEY).setValue(true);
- importPerSourceSet(true);
- importProject(buildScript.generate());
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(true);
+ importProject();
assertModules("project", "project.main", "project.test");
assertContentRoots("project");
assertContentRoots("project.main", getProjectPath());
assertExcludes("project.main", "build");
assertExcludePatterns("project.main", getExternalSystemConfigFileName());
- importPerSourceSet(false);
- importProject(buildScript.generate());
+ getCurrentExternalProjectSettings().setResolveModulePerSourceSet(false);
+ importProject();
assertModules("project");
assertContentRoots("project", getProjectPath());
assertExcludes("project", "build");
@@ -896,48 +1162,29 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertExcludes("project", ".gradle", "build");
assertContentRoots("project", getProjectPath());
- assertSources("project");
- assertResources("project");
- assertTestSources("project");
- assertTestResources("project");
- assertGeneratedSources("project");
- assertGeneratedResources("project");
- assertGeneratedTestSources("project");
- assertGeneratedTestResources("project");
+ assertNoSourceRoots("project");
assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
- assertTestSources("project.main");
- assertTestResources("project.main");
- assertGeneratedSources("project.main");
- assertGeneratedResources("project.main");
- assertGeneratedTestSources("project.main");
- assertGeneratedTestResources("project.main");
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
assertModuleOutput("project.main", path("build/classes/java/main"), "");
assertModuleOutputs("project.main", path("build/classes/java/main"), path("build/resources/main"));
assertContentRoots("project.test", path("src/test"));
- assertSources("project.test");
- assertResources("project.test");
- assertTestSources("project.test", path("src/test/java"));
- assertTestResources("project.test", path("src/test/resources"));
- assertGeneratedSources("project.test");
- assertGeneratedResources("project.test");
- assertGeneratedTestSources("project.test");
- assertGeneratedTestResources("project.test");
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleOutput("project.test", "", path("build/classes/java/test"));
assertModuleOutputs("project.test", path("build/classes/java/test"), path("build/resources/test"));
assertContentRoots("project.integrationTest", path("src/integrationTest"));
- assertSources("project.integrationTest");
- assertResources("project.integrationTest");
- assertTestSources("project.integrationTest", path("src/integrationTest/java"));
- assertTestResources("project.integrationTest", path("src/integrationTest/resources"));
- assertGeneratedSources("project.integrationTest");
- assertGeneratedResources("project.integrationTest");
- assertGeneratedTestSources("project.integrationTest");
- assertGeneratedTestResources("project.integrationTest");
+ assertSourceRoots("project.integrationTest", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/integrationTest/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/integrationTest/resources"))
+ );
assertModuleOutput("project.integrationTest", "", path("build/classes/java/integrationTest"));
assertModuleOutputs("project.integrationTest", path("build/classes/java/integrationTest"), path("build/resources/integrationTest"));
}
@@ -973,48 +1220,29 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertExcludes("project", ".gradle", "build", "out");
assertContentRoots("project", getProjectPath());
- assertSources("project");
- assertResources("project");
- assertTestSources("project");
- assertTestResources("project");
- assertGeneratedSources("project");
- assertGeneratedResources("project");
- assertGeneratedTestSources("project");
- assertGeneratedTestResources("project");
+ assertNoSourceRoots("project");
assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
- assertTestSources("project.main");
- assertTestResources("project.main");
- assertGeneratedSources("project.main");
- assertGeneratedResources("project.main");
- assertGeneratedTestSources("project.main");
- assertGeneratedTestResources("project.main");
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
assertModuleOutput("project.main", path("out/production/classes"), "");
assertModuleOutputs("project.main", path("out/production/classes"), path("out/production/resources"));
assertContentRoots("project.test", path("src/test"));
- assertSources("project.test");
- assertResources("project.test");
- assertTestSources("project.test", path("src/test/java"));
- assertTestResources("project.test", path("src/test/resources"));
- assertGeneratedSources("project.test");
- assertGeneratedResources("project.test");
- assertGeneratedTestSources("project.test");
- assertGeneratedTestResources("project.test");
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleOutput("project.test", "", path("out/test/classes"));
assertModuleOutputs("project.test", path("out/test/classes"), path("out/test/resources"));
assertContentRoots("project.integrationTest", path("src/integrationTest"));
- assertSources("project.integrationTest");
- assertResources("project.integrationTest");
- assertTestSources("project.integrationTest", path("src/integrationTest/java"));
- assertTestResources("project.integrationTest", path("src/integrationTest/resources"));
- assertGeneratedSources("project.integrationTest");
- assertGeneratedResources("project.integrationTest");
- assertGeneratedTestSources("project.integrationTest");
- assertGeneratedTestResources("project.integrationTest");
+ assertSourceRoots("project.integrationTest", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/integrationTest/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/integrationTest/resources"))
+ );
assertModuleOutput("project.integrationTest", "", path("out/integrationTest/classes"));
assertModuleOutputs("project.integrationTest", path("out/integrationTest/classes"), path("out/integrationTest/resources"));
}
@@ -1041,48 +1269,29 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertExcludes("project", ".gradle", "build");
assertContentRoots("project", getProjectPath());
- assertSources("project");
- assertResources("project");
- assertTestSources("project");
- assertTestResources("project");
- assertGeneratedSources("project");
- assertGeneratedResources("project");
- assertGeneratedTestSources("project");
- assertGeneratedTestResources("project");
+ assertNoSourceRoots("project");
assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
- assertTestSources("project.main");
- assertTestResources("project.main");
- assertGeneratedSources("project.main");
- assertGeneratedResources("project.main");
- assertGeneratedTestSources("project.main");
- assertGeneratedTestResources("project.main");
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
assertModuleOutput("project.main", path("build/classes/java/main"), "");
assertModuleOutputs("project.main", path("build/classes/java/main"), path("build/resources/main"));
assertContentRoots("project.test", path("src/test"));
- assertSources("project.test");
- assertResources("project.test");
- assertTestSources("project.test", path("src/test/java"));
- assertTestResources("project.test", path("src/test/resources"));
- assertGeneratedSources("project.test");
- assertGeneratedResources("project.test");
- assertGeneratedTestSources("project.test");
- assertGeneratedTestResources("project.test");
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleOutput("project.test", "", path("build/classes/java/test"));
assertModuleOutputs("project.test", path("build/classes/java/test"), path("build/resources/test"));
assertContentRoots("project.testFixtures", path("src/testFixtures"));
- assertSources("project.testFixtures");
- assertResources("project.testFixtures");
- assertTestSources("project.testFixtures", path("src/testFixtures/java"));
- assertTestResources("project.testFixtures", path("src/testFixtures/resources"));
- assertGeneratedSources("project.testFixtures");
- assertGeneratedResources("project.testFixtures");
- assertGeneratedTestSources("project.testFixtures");
- assertGeneratedTestResources("project.testFixtures");
+ assertSourceRoots("project.testFixtures", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/testFixtures/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/testFixtures/resources"))
+ );
assertModuleOutput("project.testFixtures", "", path("build/classes/java/testFixtures"));
assertModuleOutputs("project.testFixtures", path("build/classes/java/testFixtures"), path("build/resources/testFixtures"));
}
@@ -1109,90 +1318,33 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
assertExcludes("project", ".gradle", "build", "out");
assertContentRoots("project", getProjectPath());
- assertSources("project");
- assertResources("project");
- assertTestSources("project");
- assertTestResources("project");
- assertGeneratedSources("project");
- assertGeneratedResources("project");
- assertGeneratedTestSources("project");
- assertGeneratedTestResources("project");
+ assertNoSourceRoots("project");
assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
- assertTestSources("project.main");
- assertTestResources("project.main");
- assertGeneratedSources("project.main");
- assertGeneratedResources("project.main");
- assertGeneratedTestSources("project.main");
- assertGeneratedTestResources("project.main");
+ assertSourceRoots("project.main", it -> it
+ .sourceRoots(ExternalSystemSourceType.SOURCE, path("src/main/java"))
+ .sourceRoots(ExternalSystemSourceType.RESOURCE, path("src/main/resources"))
+ );
assertModuleOutput("project.main", path("out/production/classes"), "");
assertModuleOutputs("project.main", path("out/production/classes"), path("out/production/resources"));
assertContentRoots("project.test", path("src/test"));
- assertSources("project.test");
- assertResources("project.test");
- assertTestSources("project.test", path("src/test/java"));
- assertTestResources("project.test", path("src/test/resources"));
- assertGeneratedSources("project.test");
- assertGeneratedResources("project.test");
- assertGeneratedTestSources("project.test");
- assertGeneratedTestResources("project.test");
+ assertSourceRoots("project.test", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/test/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/test/resources"))
+ );
assertModuleOutput("project.test", "", path("out/test/classes"));
assertModuleOutputs("project.test", path("out/test/classes"), path("out/test/resources"));
assertContentRoots("project.testFixtures", path("src/testFixtures"));
- assertSources("project.testFixtures");
- assertResources("project.testFixtures");
- assertTestSources("project.testFixtures", path("src/testFixtures/java"));
- assertTestResources("project.testFixtures", path("src/testFixtures/resources"));
- assertGeneratedSources("project.testFixtures");
- assertGeneratedResources("project.testFixtures");
- assertGeneratedTestSources("project.testFixtures");
- assertGeneratedTestResources("project.testFixtures");
+ assertSourceRoots("project.testFixtures", it -> it
+ .sourceRoots(ExternalSystemSourceType.TEST, path("src/testFixtures/java"))
+ .sourceRoots(ExternalSystemSourceType.TEST_RESOURCE, path("src/testFixtures/resources"))
+ );
assertModuleOutput("project.testFixtures", "", path("out/testFixtures/classes"));
assertModuleOutputs("project.testFixtures", path("out/testFixtures/classes"), path("out/testFixtures/resources"));
}
- protected void assertDefaultGradleJavaProjectFolders() {
- if (GradleProjectSettings.isDelegatedBuildEnabled(myProject, getProjectPath())) {
- assertExcludes("project", ".gradle", "build");
- }
- else {
- assertExcludes("project", ".gradle", "build", "out");
- }
-
- assertContentRoots("project", getProjectPath());
- assertSources("project");
- assertResources("project");
- assertTestSources("project");
- assertTestResources("project");
-
- assertContentRoots("project.main", path("src/main"));
- assertSources("project.main", path("src/main/java"));
- assertResources("project.main", path("src/main/resources"));
-
- assertContentRoots("project.test", path("src/test"));
- assertTestSources("project.test", path("src/test/java"));
- assertTestResources("project.test", path("src/test/resources"));
- }
-
- protected void assertDefaultGradleJavaProjectFoldersForMergedModule() {
- if (GradleProjectSettings.isDelegatedBuildEnabled(myProject, getProjectPath())) {
- assertExcludes("project", ".gradle", "build");
- }
- else {
- assertExcludes("project", ".gradle", "build", "out");
- }
-
- assertContentRoots("project", getProjectPath());
- assertSources("project", path("src/main/java"));
- assertResources("project", path("src/main/resources"));
- assertTestSources("project", path("src/test/java"));
- assertTestResources("project", path("src/test/resources"));
- }
-
private void createDefaultDirs() throws IOException {
createProjectSubFile("src/main/java/A.java");
createProjectSubFile("src/test/java/A.java");
@@ -1228,10 +1380,6 @@ public class GradleFoldersImportingTest extends GradleImportingTestCase {
}
}
- protected void importPerSourceSet(boolean b) {
- getCurrentExternalProjectSettings().setResolveModulePerSourceSet(b);
- }
-
protected void waitForModulesUpdate() throws Exception {
edt(() -> {
((SourceFolderManagerImpl)SourceFolderManager.getInstance(myProject)).consumeBulkOperationsState(future -> {
diff --git a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java
index d5e8b6d74e12..b84d1ef726cf 100644
--- a/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java
+++ b/plugins/gradle/testSources/org/jetbrains/plugins/gradle/importing/GradleImportingTestCase.java
@@ -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