mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 22:27:31 +00:00
通过将配置迁移到单独的模块, 可以方便使用其他程序扩展 ScaleBot, 而不仅仅是让 ScaleBot 成为扩展的平台. BREAKING CHANGE: 与配置有关的 Class 移动到了 scalabot-meta 模块. 目前仅所有配置类(以 `Config` 结尾的 Class)和相应的序列化类(以 `Serializer` 结尾的)都迁移到了 meta 模块, 但其工具方法则作为扩展函数保留在 app 模块中. 这么做的好处是为了方便其他应用(例如 ScalaBot 外部管理程序)根据需要生成配置文件. scalabot-meta 将会作为依赖项发布, 可根据需要获取 ScalaBot-meta 生成 ScalaBot 的配置. 此次改动普通用户无需迁移.
43 lines
1.5 KiB
Kotlin
43 lines
1.5 KiB
Kotlin
@file:Suppress("PackageDirectoryMismatch")
|
|
|
|
package net.lamgc.scalabot.config.serializer
|
|
|
|
import com.google.gson.JsonObject
|
|
import com.google.gson.JsonParseException
|
|
import com.google.gson.JsonPrimitive
|
|
import org.eclipse.aether.artifact.DefaultArtifact
|
|
import org.junit.jupiter.api.Test
|
|
import kotlin.test.assertEquals
|
|
import kotlin.test.assertFailsWith
|
|
|
|
internal class ArtifactSerializerTest {
|
|
|
|
@Test
|
|
fun badJsonType() {
|
|
assertFailsWith<JsonParseException> { ArtifactSerializer.deserialize(JsonObject(), null, null) }
|
|
}
|
|
|
|
@Test
|
|
fun `Basic format serialization`() {
|
|
val gav = "org.example.software:test:1.0.0-SNAPSHOT"
|
|
val expectArtifact = DefaultArtifact(gav)
|
|
val actualArtifact = DefaultArtifact(ArtifactSerializer.serialize(expectArtifact, null, null).asString)
|
|
assertEquals(expectArtifact, actualArtifact)
|
|
}
|
|
|
|
@Test
|
|
fun `Full format serialization`() {
|
|
val gav = "org.example.software:test:war:javadoc:1.0.0-SNAPSHOT"
|
|
val expectArtifact = DefaultArtifact(gav)
|
|
val actualArtifact = DefaultArtifact(ArtifactSerializer.serialize(expectArtifact, null, null).asString)
|
|
assertEquals(expectArtifact, actualArtifact)
|
|
}
|
|
|
|
@Test
|
|
fun deserialize() {
|
|
val gav = "org.example.software:test:1.0.0-SNAPSHOT"
|
|
val expectArtifact = DefaultArtifact(gav)
|
|
val actualArtifact = ArtifactSerializer.deserialize(JsonPrimitive(gav), null, null)
|
|
assertEquals(expectArtifact, actualArtifact)
|
|
}
|
|
} |