mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-24 09:20:53 +07:00
167 lines
6.2 KiB
Java
167 lines
6.2 KiB
Java
// 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.importing;
|
|
|
|
import com.intellij.compiler.CompilerConfiguration;
|
|
import com.intellij.compiler.CompilerConfigurationImpl;
|
|
import com.intellij.compiler.CompilerWorkspaceConfiguration;
|
|
import com.intellij.compiler.impl.javaCompiler.javac.JavacConfiguration;
|
|
import com.intellij.openapi.application.ReadAction;
|
|
import com.intellij.packaging.artifacts.Artifact;
|
|
import com.intellij.packaging.artifacts.ArtifactManager;
|
|
import com.intellij.packaging.elements.PackagingElement;
|
|
import com.intellij.packaging.impl.elements.ArchivePackagingElement;
|
|
import com.intellij.packaging.impl.elements.ArtifactPackagingElement;
|
|
import com.intellij.packaging.impl.elements.ModuleOutputPackagingElement;
|
|
import org.jetbrains.jps.model.java.compiler.JpsJavaCompilerOptions;
|
|
import org.junit.Test;
|
|
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author Vladislav.Soroka
|
|
*/
|
|
public class GradleJavaSettingsImportingTest extends GradleSettingsImportingTestCase {
|
|
@Test
|
|
public void testCompilerConfigurationSettingsImport() throws Exception {
|
|
|
|
importProject(
|
|
withGradleIdeaExtPlugin(
|
|
"""
|
|
idea {
|
|
project.settings {
|
|
compiler {
|
|
resourcePatterns '!*.java;!*.class'
|
|
clearOutputDirectory false
|
|
addNotNullAssertions false
|
|
autoShowFirstErrorInEditor false
|
|
displayNotificationPopup false
|
|
enableAutomake false
|
|
parallelCompilation true
|
|
rebuildModuleOnDependencyChange false
|
|
javac {
|
|
preferTargetJDKCompiler false
|
|
javacAdditionalOptions '-Dkey=val'
|
|
generateNoWarnings true
|
|
}
|
|
}
|
|
}
|
|
}""")
|
|
);
|
|
|
|
final CompilerConfigurationImpl compilerConfiguration = (CompilerConfigurationImpl)CompilerConfiguration.getInstance(myProject);
|
|
final CompilerWorkspaceConfiguration workspaceConfiguration = CompilerWorkspaceConfiguration.getInstance(myProject);
|
|
|
|
assertSameElements(compilerConfiguration.getResourceFilePatterns(), "!*.class", "!*.java");
|
|
assertFalse(workspaceConfiguration.CLEAR_OUTPUT_DIRECTORY);
|
|
assertFalse(compilerConfiguration.isAddNotNullAssertions());
|
|
assertFalse(workspaceConfiguration.AUTO_SHOW_ERRORS_IN_EDITOR);
|
|
assertFalse(workspaceConfiguration.DISPLAY_NOTIFICATION_POPUP);
|
|
assertFalse(workspaceConfiguration.MAKE_PROJECT_ON_SAVE);
|
|
assertTrue(compilerConfiguration.isParallelCompilationEnabled());
|
|
assertFalse(workspaceConfiguration.REBUILD_ON_DEPENDENCY_CHANGE);
|
|
|
|
final JpsJavaCompilerOptions javacOpts = JavacConfiguration.getOptions(myProject, JavacConfiguration.class);
|
|
assertFalse(javacOpts.PREFER_TARGET_JDK_COMPILER);
|
|
assertEquals("-Dkey=val", javacOpts.ADDITIONAL_OPTIONS_STRING);
|
|
assertTrue(javacOpts.GENERATE_NO_WARNINGS);
|
|
}
|
|
|
|
@Test
|
|
public void testArtifactsSettingsImport() throws Exception {
|
|
importProject(
|
|
withGradleIdeaExtPlugin(
|
|
"""
|
|
import org.jetbrains.gradle.ext.*
|
|
idea {
|
|
project.settings {
|
|
ideArtifacts {
|
|
myArt {
|
|
file("build.gradle")
|
|
}
|
|
}
|
|
}
|
|
}"""
|
|
)
|
|
);
|
|
importProject();
|
|
ArtifactManager artifactManager = ArtifactManager.getInstance(myProject);
|
|
Artifact artifact = ReadAction.compute(() -> artifactManager.getArtifacts()[0]);
|
|
assertEquals("myArt", artifact.getName());
|
|
}
|
|
|
|
|
|
@Test
|
|
public void testArtifactsReferenceImport() throws Exception {
|
|
importProject(
|
|
createBuildScriptBuilder()
|
|
.withGradleIdeaExtPlugin()
|
|
.addPostfix(
|
|
"idea.project.settings {",
|
|
" ideArtifacts {",
|
|
" SomeArt {",
|
|
" archive(\"main.jar\") {",
|
|
" moduleOutput(idea.module.name)",
|
|
" }",
|
|
" }",
|
|
" ArtifactRef {",
|
|
" artifact('SomeArt')",
|
|
" }",
|
|
" }",
|
|
"}"
|
|
)
|
|
.generate()
|
|
);
|
|
|
|
|
|
ArtifactManager artifactsManager = ArtifactManager.getInstance(myProject);
|
|
Artifact artifact = ReadAction.compute(() -> artifactsManager.findArtifact("ArtifactRef"));
|
|
assertNotNull(artifact);
|
|
List<PackagingElement<?>> children = artifact.getRootElement().getChildren();
|
|
assertSize(1, children);
|
|
PackagingElement<?> element = children.get(0);
|
|
assertInstanceOf(element, ArtifactPackagingElement.class);
|
|
assertEquals("SomeArt", ((ArtifactPackagingElement)element).getArtifactName());
|
|
}
|
|
|
|
@Test
|
|
public void testModuleReferenceImport() throws Exception {
|
|
importProject(
|
|
createBuildScriptBuilder()
|
|
.withGradleIdeaExtPlugin()
|
|
.addPostfix(
|
|
"idea.project.settings {",
|
|
" ideArtifacts {",
|
|
" SomeArt {",
|
|
" archive(\"main.jar\") {",
|
|
" moduleOutput(idea.module.name)",
|
|
" moduleOutput(\"unknown_module\")",
|
|
" }",
|
|
" }",
|
|
" }",
|
|
"}"
|
|
)
|
|
.generate()
|
|
);
|
|
|
|
|
|
ArtifactManager artifactsManager = ArtifactManager.getInstance(myProject);
|
|
Artifact artifact = ReadAction.compute(() -> artifactsManager.findArtifact("SomeArt"));
|
|
assertNotNull(artifact);
|
|
List<PackagingElement<?>> artifactChildren = artifact.getRootElement().getChildren();
|
|
assertSize(1, artifactChildren);
|
|
PackagingElement<?> archive = artifactChildren.get(0);
|
|
assertNotNull(archive);
|
|
assertInstanceOf(archive, ArchivePackagingElement.class);
|
|
List<PackagingElement<?>> archiveChildren = ((ArchivePackagingElement)archive).getChildren();
|
|
assertSize(2, archiveChildren);
|
|
|
|
PackagingElement<?> moduleOutput1 = archiveChildren.get(0);
|
|
assertInstanceOf(moduleOutput1, ModuleOutputPackagingElement.class);
|
|
assertEquals("project", ((ModuleOutputPackagingElement)moduleOutput1).getModuleName());
|
|
|
|
PackagingElement<?> moduleOutput2 = archiveChildren.get(1);
|
|
assertInstanceOf(moduleOutput2, ModuleOutputPackagingElement.class);
|
|
assertEquals("unknown_module", ((ModuleOutputPackagingElement)moduleOutput2).getModuleName());
|
|
}
|
|
}
|