From cc14c4e88dc39ae7d85218ccb5857672145628a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Segovia=20C=C3=B3rdoba?= Date: Sun, 25 Aug 2024 20:11:21 +0200 Subject: [PATCH] Improve tests --- .../compiler/KopyCommandLineProcessorTest.kt | 58 +++++++++++++++++++ .../plugin/KopyGradlePluginIntegrationTest.kt | 23 ++++++++ 2 files changed, 81 insertions(+) diff --git a/kopy-compiler/test/kotlin/com/javiersc/kotlin/kopy/compiler/KopyCommandLineProcessorTest.kt b/kopy-compiler/test/kotlin/com/javiersc/kotlin/kopy/compiler/KopyCommandLineProcessorTest.kt index 1f140fa..4462be4 100644 --- a/kopy-compiler/test/kotlin/com/javiersc/kotlin/kopy/compiler/KopyCommandLineProcessorTest.kt +++ b/kopy-compiler/test/kotlin/com/javiersc/kotlin/kopy/compiler/KopyCommandLineProcessorTest.kt @@ -5,6 +5,7 @@ import com.javiersc.kotlin.kopy.args.KopyVisibility import com.javiersc.kotlin.stdlib.second import io.kotest.matchers.collections.shouldHaveSize import io.kotest.matchers.shouldBe +import org.jetbrains.kotlin.config.CompilerConfiguration import org.junit.jupiter.api.Test class KopyCommandLineProcessorTest { @@ -18,8 +19,65 @@ class KopyCommandLineProcessorTest { @Test fun `check plugin options`() { val processor = KopyCommandLineProcessor() + val compilerConfiguration = CompilerConfiguration() processor.pluginOptions.shouldHaveSize(2) processor.pluginOptions.first().optionName shouldBe KopyFunctions.NAME processor.pluginOptions.second().optionName shouldBe KopyVisibility.NAME + + processor.processOption( + option = processor.pluginOptions.first(), + value = KopyFunctions.All.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Functions] shouldBe KopyFunctions.All + + processor.processOption( + option = processor.pluginOptions.first(), + value = KopyFunctions.Copy.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Functions] shouldBe KopyFunctions.Copy + + processor.processOption( + option = processor.pluginOptions.first(), + value = KopyFunctions.Invoke.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Functions] shouldBe KopyFunctions.Invoke + + processor.processOption( + option = processor.pluginOptions.second(), + value = KopyVisibility.Auto.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Visibility] shouldBe KopyVisibility.Auto + + processor.processOption( + option = processor.pluginOptions.second(), + value = KopyVisibility.Public.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Visibility] shouldBe KopyVisibility.Public + + processor.processOption( + option = processor.pluginOptions.second(), + value = KopyVisibility.Internal.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Visibility] shouldBe KopyVisibility.Internal + + processor.processOption( + option = processor.pluginOptions.second(), + value = KopyVisibility.Protected.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Visibility] shouldBe KopyVisibility.Protected + + processor.processOption( + option = processor.pluginOptions.second(), + value = KopyVisibility.Private.value, + configuration = compilerConfiguration, + ) + compilerConfiguration[KopyKey.Visibility] shouldBe KopyVisibility.Private } } diff --git a/kopy-gradle-plugin/testIntegration/kotlin/com/javiersc/kotlin/kopy/gradle/plugin/KopyGradlePluginIntegrationTest.kt b/kopy-gradle-plugin/testIntegration/kotlin/com/javiersc/kotlin/kopy/gradle/plugin/KopyGradlePluginIntegrationTest.kt index 2ef9c03..4f96e10 100644 --- a/kopy-gradle-plugin/testIntegration/kotlin/com/javiersc/kotlin/kopy/gradle/plugin/KopyGradlePluginIntegrationTest.kt +++ b/kopy-gradle-plugin/testIntegration/kotlin/com/javiersc/kotlin/kopy/gradle/plugin/KopyGradlePluginIntegrationTest.kt @@ -1,7 +1,9 @@ package com.javiersc.kotlin.kopy.gradle.plugin import com.javiersc.gradle.project.test.extensions.GradleProjectTest +import com.javiersc.kotlin.kopy.compiler.KopyCompilerProjectData import io.kotest.matchers.nulls.shouldNotBeNull +import io.kotest.matchers.shouldBe import org.junit.jupiter.api.Test internal class KopyGradlePluginIntegrationTest : GradleProjectTest() { @@ -14,6 +16,13 @@ internal class KopyGradlePluginIntegrationTest : GradleProjectTest() { pluginManager.apply("org.jetbrains.kotlin.android") extensions.findByName("kopy").shouldNotBeNull() extensions.findByType(KopyExtension::class.java).shouldNotBeNull() + val kopy: KopyGradlePlugin = plugins.getPlugin(KopyGradlePlugin::class.java) + kopy.getCompilerPluginId().shouldBe("com.javiersc.kotlin.kopy-compiler") + kopy.getPluginArtifact().apply { + groupId shouldBe "com.javiersc.kotlin" + artifactId shouldBe "kopy-compiler" + version shouldBe KopyCompilerProjectData.Version + } } } @@ -24,6 +33,13 @@ internal class KopyGradlePluginIntegrationTest : GradleProjectTest() { pluginManager.apply("org.jetbrains.kotlin.jvm") extensions.findByName("kopy").shouldNotBeNull() extensions.findByType(KopyExtension::class.java).shouldNotBeNull() + val kopy: KopyGradlePlugin = plugins.getPlugin(KopyGradlePlugin::class.java) + kopy.getCompilerPluginId().shouldBe("com.javiersc.kotlin.kopy-compiler") + kopy.getPluginArtifact().apply { + groupId shouldBe "com.javiersc.kotlin" + artifactId shouldBe "kopy-compiler" + version shouldBe KopyCompilerProjectData.Version + } } } @@ -34,6 +50,13 @@ internal class KopyGradlePluginIntegrationTest : GradleProjectTest() { pluginManager.apply("org.jetbrains.kotlin.multiplatform") extensions.findByName("kopy").shouldNotBeNull() extensions.findByType(KopyExtension::class.java).shouldNotBeNull() + val kopy: KopyGradlePlugin = plugins.getPlugin(KopyGradlePlugin::class.java) + kopy.getCompilerPluginId().shouldBe("com.javiersc.kotlin.kopy-compiler") + kopy.getPluginArtifact().apply { + groupId shouldBe "com.javiersc.kotlin" + artifactId shouldBe "kopy-compiler" + version shouldBe KopyCompilerProjectData.Version + } } } }