From 61b611b22e47586c9134fd2826b6b25bd2ad52a9 Mon Sep 17 00:00:00 2001 From: LamGC Date: Sun, 26 Jun 2022 02:51:33 +0800 Subject: [PATCH] =?UTF-8?q?test(config):=20=E4=B8=BA=20BotConfig=20?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=9C=80=E5=B0=91=E5=8F=82=E6=95=B0=E7=9A=84?= =?UTF-8?q?=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96=E6=B5=8B=E8=AF=95=E9=A1=B9?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充最少参数的反序列化测试项, 以确保在 Json 属性缺失的情况下依然能正确反序列化出正确的对象. --- scalabot-meta/src/test/kotlin/ConfigsTest.kt | 29 +++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/scalabot-meta/src/test/kotlin/ConfigsTest.kt b/scalabot-meta/src/test/kotlin/ConfigsTest.kt index 37a0244..6c2ad49 100644 --- a/scalabot-meta/src/test/kotlin/ConfigsTest.kt +++ b/scalabot-meta/src/test/kotlin/ConfigsTest.kt @@ -102,7 +102,6 @@ internal class BotConfigTest { assertEquals(minimumExpectConfig.baseApiUrl, json.get("baseApiUrl").asString) } - // 测试 BotConfig 的 json 反序列化 @Test fun `json deserialize`() { val expectExtensionArtifact = DefaultArtifact("org.example.test:test-extension:1.0.0") @@ -149,6 +148,34 @@ internal class BotConfigTest { assertEquals("http://localhost:8080", actualConfig.baseApiUrl) } + @Test + fun `json deserialize - minimum parameters`() { + @Language("JSON5") val minimumLooksGoodJson = """ + { + "account": { + "name": "TestBot", + "token": "123456789:AAHErDroUTznQsOd_oZPJ6cQEj4Z5mGHO10", + "creatorId": 123456789 + } + } + """.trimIndent() + val expectDefaultConfig = BotConfig(account = BotAccount("Test", "Test", 0)) + val actualMinimumConfig = gson.fromJson(minimumLooksGoodJson, BotConfig::class.java) + assertNotNull(actualMinimumConfig) + assertEquals("TestBot", actualMinimumConfig.account.name) + assertEquals("123456789:AAHErDroUTznQsOd_oZPJ6cQEj4Z5mGHO10", actualMinimumConfig.account.token) + assertEquals(123456789, actualMinimumConfig.account.creatorId) + + assertEquals(expectDefaultConfig.enabled, actualMinimumConfig.enabled) + assertEquals(expectDefaultConfig.disableBuiltInAbility, actualMinimumConfig.disableBuiltInAbility) + assertEquals(expectDefaultConfig.autoUpdateCommandList, actualMinimumConfig.autoUpdateCommandList) + assertEquals(expectDefaultConfig.proxy, actualMinimumConfig.proxy) + assertEquals(expectDefaultConfig.baseApiUrl, actualMinimumConfig.baseApiUrl) + + assertTrue(expectDefaultConfig.extensions.containsAll(actualMinimumConfig.extensions)) + assertTrue(actualMinimumConfig.extensions.containsAll(expectDefaultConfig.extensions)) + } + } internal class ProxyConfigTest {