mirror of
https://github.com/LamGC/ScalaBot.git
synced 2025-04-29 14:17:30 +00:00
通过将配置迁移到单独的模块, 可以方便使用其他程序扩展 ScaleBot, 而不仅仅是让 ScaleBot 成为扩展的平台. BREAKING CHANGE: 与配置有关的 Class 移动到了 scalabot-meta 模块. 目前仅所有配置类(以 `Config` 结尾的 Class)和相应的序列化类(以 `Serializer` 结尾的)都迁移到了 meta 模块, 但其工具方法则作为扩展函数保留在 app 模块中. 这么做的好处是为了方便其他应用(例如 ScalaBot 外部管理程序)根据需要生成配置文件. scalabot-meta 将会作为依赖项发布, 可根据需要获取 ScalaBot-meta 生成 ScalaBot 的配置. 此次改动普通用户无需迁移.
116 lines
4.9 KiB
Kotlin
116 lines
4.9 KiB
Kotlin
package net.lamgc.scalabot.config.serializer
|
|
|
|
import com.google.gson.*
|
|
import net.lamgc.scalabot.config.UsernameAuthenticator
|
|
import org.junit.jupiter.api.assertThrows
|
|
import kotlin.test.*
|
|
|
|
class UsernameAuthenticatorTest {
|
|
|
|
@Test
|
|
fun checkCredentialsTest() {
|
|
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
|
assertTrue(authenticator.checkCredentials("testUser", "testPassword"))
|
|
assertFalse(authenticator.checkCredentials("falseUser", "testPassword"))
|
|
assertFalse(authenticator.checkCredentials("testUser", "falsePassword"))
|
|
}
|
|
|
|
@Test
|
|
fun toJsonObjectTest() {
|
|
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
|
val jsonObject = authenticator.toJsonObject()
|
|
assertEquals("testUser", jsonObject["username"]?.asString)
|
|
assertEquals("testPassword", jsonObject["password"]?.asString)
|
|
}
|
|
|
|
@Test
|
|
fun equalsTest() {
|
|
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
|
assertEquals(authenticator, UsernameAuthenticator("testUser", "testPassword"))
|
|
assertEquals(authenticator.hashCode(), UsernameAuthenticator("testUser", "testPassword").hashCode())
|
|
assertNotEquals(authenticator, UsernameAuthenticator("testUser", "falsePassword"))
|
|
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("testUser", "falsePassword").hashCode())
|
|
assertNotEquals(authenticator, UsernameAuthenticator("falseUser", "testPassword"))
|
|
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("falseUser", "testPassword").hashCode())
|
|
assertNotEquals(authenticator, UsernameAuthenticator("falseUser", "falsePassword"))
|
|
assertNotEquals(authenticator.hashCode(), UsernameAuthenticator("falseUser", "falsePassword").hashCode())
|
|
assertFalse(authenticator.equals(null))
|
|
}
|
|
|
|
}
|
|
|
|
class UsernameAuthenticatorSerializerTest {
|
|
|
|
@Test
|
|
fun serializeTest() {
|
|
val authenticator = UsernameAuthenticator("testUser", "testPassword")
|
|
val jsonElement = UsernameAuthenticatorSerializer.serialize(authenticator, null, null)
|
|
assertTrue(jsonElement.isJsonObject)
|
|
val jsonObject = jsonElement.asJsonObject
|
|
assertEquals("testUser", jsonObject["username"]?.asString)
|
|
assertEquals("testPassword", jsonObject["password"]?.asString)
|
|
}
|
|
|
|
@Test
|
|
fun deserializeTest() {
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonArray(), null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonPrimitive(""), null, null)
|
|
}
|
|
assertNull(UsernameAuthenticatorSerializer.deserialize(JsonNull.INSTANCE, null, null))
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "testUser")
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "testUser")
|
|
add("password", JsonArray())
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("password", "testPassword")
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
add("username", JsonArray())
|
|
addProperty("password", "testPassword")
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "")
|
|
addProperty("password", "")
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "testUser")
|
|
addProperty("password", "")
|
|
}, null, null)
|
|
}
|
|
assertThrows<JsonParseException> {
|
|
UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "")
|
|
addProperty("password", "testPassword")
|
|
}, null, null)
|
|
}
|
|
|
|
val authenticator = UsernameAuthenticatorSerializer.deserialize(JsonObject().apply {
|
|
addProperty("username", "testUser")
|
|
addProperty("password", "testPassword")
|
|
}, null, null)
|
|
assertNotNull(authenticator)
|
|
|
|
assertTrue(authenticator.checkCredentials("testUser", "testPassword"))
|
|
assertFalse(authenticator.checkCredentials("falseUser", "testPassword"))
|
|
assertFalse(authenticator.checkCredentials("testUser", "falsePassword"))
|
|
}
|
|
|
|
}
|