diff --git a/libraries/tools/kotlin-gradle-plugin-idea/src/testFixtures/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/testFixtures/TestIdeaKpmInstances.kt b/libraries/tools/kotlin-gradle-plugin-idea/src/testFixtures/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/testFixtures/TestIdeaKpmInstances.kt new file mode 100644 index 00000000000..b7d1935b1de --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-idea/src/testFixtures/kotlin/org/jetbrains/kotlin/gradle/kpm/idea/testFixtures/TestIdeaKpmInstances.kt @@ -0,0 +1,120 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.kpm.idea.testFixtures + +import org.jetbrains.kotlin.gradle.kpm.idea.* +import org.jetbrains.kotlin.tooling.core.emptyExtras +import org.jetbrains.kotlin.tooling.core.extrasKeyOf +import org.jetbrains.kotlin.tooling.core.extrasOf +import org.jetbrains.kotlin.tooling.core.withValue +import java.io.File + +object TestIdeaKpmInstances { + + val extrasWithIntAndStrings = extrasOf( + extrasKeyOf() withValue 1, + extrasKeyOf() withValue "Cash" + ) + + val simpleModuleCoordinates = IdeaKpmModuleCoordinatesImpl( + buildId = "myBuildId", + projectPath = "myProjectPath", + projectName = "myProjectName", + moduleName = "myModuleName", + moduleClassifier = "myModuleClassifier" + ) + + val simpleFragmentCoordinates = IdeaKpmFragmentCoordinatesImpl( + module = simpleModuleCoordinates, + fragmentName = "myFragmentName" + ) + + val simpleJvmPlatform = IdeaKpmJvmPlatformImpl( + jvmTarget = "myJvmTarget" + ) + + val simpleLanguageSettings = IdeaKpmLanguageSettingsImpl( + languageVersion = "myLanguageVersion", + apiVersion = "myApiVersion", + isProgressiveMode = true, + enabledLanguageFeatures = setOf("myFeature1", "myFeature2"), + optInAnnotationsInUse = setOf("myOptIn1", "myOptIn2"), + compilerPluginArguments = listOf("myCompilerPluginArgument1", "myCompilerPluginArgument2"), + compilerPluginClasspath = listOf(File("myCompilerPluginClasspath.jar").absoluteFile), + freeCompilerArgs = listOf("myFreeCompilerArguments") + ) + + val simpleBinaryCoordinates = IdeaKpmBinaryCoordinatesImpl( + group = "myGroup", + module = "myModule", + version = "myVersion", + kotlinModuleName = "myKotlinModuleName", + kotlinFragmentName = "myKotlinFragmentName" + ) + + val simpleUnresolvedBinaryDependency = IdeaKpmUnresolvedBinaryDependencyImpl( + cause = "myCause", + coordinates = simpleBinaryCoordinates + ) + + val simpleResolvedBinaryDependency = IdeaKpmResolvedBinaryDependencyImpl( + coordinates = simpleBinaryCoordinates, + binaryType = "myBinaryType", + binaryFile = File("myBinaryFile.jar").absoluteFile + ) + + val simpleFragmentDependency = IdeaKpmFragmentDependencyImpl( + type = IdeaKpmFragmentDependency.Type.Friend, + coordinates = simpleFragmentCoordinates + ) + + val simpleSourceDirectory = IdeaKpmSourceDirectoryImpl( + file = File("myFile").absoluteFile, + type = "myType" + ) + + val simpleFragment = IdeaKpmFragmentImpl( + coordinates = simpleFragmentCoordinates, + platforms = setOf(simpleJvmPlatform), + languageSettings = simpleLanguageSettings, + dependencies = listOf(simpleUnresolvedBinaryDependency, simpleResolvedBinaryDependency, simpleFragmentDependency), + sourceDirectories = listOf(simpleSourceDirectory), + extras = emptyExtras() + ) + + val fragmentWithExtras = simpleFragment.copy( + extras = extrasWithIntAndStrings + ) + + val simpleCompilationOutput = IdeaKpmCompilationOutputImpl( + classesDirs = setOf(File("myClassesDir").absoluteFile), + resourcesDir = File("myResourcesDir").absoluteFile + ) + + val simpleVariant = IdeaKpmVariantImpl( + fragment = simpleFragment, + platform = simpleJvmPlatform, + variantAttributes = mapOf("key1" to "attribute1", "key2" to "attribute2"), + compilationOutputs = simpleCompilationOutput + ) + + val variantWithExtras = simpleVariant.copy( + fragment = fragmentWithExtras + ) + + val simpleModule = IdeaKpmModuleImpl( + coordinates = simpleModuleCoordinates, + fragments = listOf(simpleFragment, simpleVariant) + ) + + val simpleProject = IdeaKpmProjectImpl( + gradlePluginVersion = "1.7.20", + coreLibrariesVersion = "1.6.20", + explicitApiModeCliOption = null, + kotlinNativeHome = File("myKotlinNativeHome").absoluteFile, + modules = listOf(simpleModule) + ) +}