Skip to content

Commit

Permalink
Improve tests
Browse files Browse the repository at this point in the history
  • Loading branch information
JavierSegoviaCordoba committed Aug 25, 2024
1 parent 7e5868e commit cc14c4e
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand All @@ -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
}
}
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -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
}
}
}

Expand All @@ -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
}
}
}

Expand All @@ -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
}
}
}
}

0 comments on commit cc14c4e

Please sign in to comment.