TaskUtilsKtTest.kt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*
  2. * Copyright 2019-2022 Mamoe Technologies and contributors.
  3. *
  4. * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
  5. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
  6. *
  7. * https://github.com/mamoe/mirai/blob/dev/LICENSE
  8. */
  9. package net.mamoe.mirai.console.intellij.creator.tasks
  10. import net.mamoe.mirai.console.intellij.diagnostics.adjustToClassName
  11. import net.mamoe.mirai.console.intellij.diagnostics.isValidPackageName
  12. import net.mamoe.mirai.console.intellij.diagnostics.isValidQualifiedClassName
  13. import net.mamoe.mirai.console.intellij.diagnostics.isValidSimpleClassName
  14. import kotlin.test.Test
  15. import kotlin.test.assertEquals
  16. import kotlin.test.assertTrue
  17. internal class TaskUtilsKtTest {
  18. private fun useClassNameCases(mustBeTrue: (String) -> Boolean) {
  19. val success = listOf("A", "A_B", "A0", "A_0", "A_B0")
  20. val failure = listOf("", "0", "_", "-", ".", "/", "A/", "A.", "A.")
  21. success.forEach { assertEquals(true, mustBeTrue(it), it) }
  22. failure.forEach { assertEquals(false, mustBeTrue(it), it) }
  23. }
  24. @Test
  25. fun isValidPackageName() {
  26. useClassNameCases { it.isValidPackageName() }
  27. }
  28. @Test
  29. fun isValidClassName() {
  30. useClassNameCases { it.isValidSimpleClassName() }
  31. }
  32. @Test
  33. fun adjustToClassName() {
  34. assertEquals("Test", "Test".adjustToClassName())
  35. assertEquals("TeSt", "Te_st".adjustToClassName())
  36. assertEquals("TeSt", "Te_St".adjustToClassName())
  37. assertEquals("TeSt", "Te-st".adjustToClassName())
  38. assertEquals("TeSt", "Te-St".adjustToClassName())
  39. assertEquals("TestAA", "Test//!@#$%^&*()AA".adjustToClassName())
  40. assertEquals(null, "0".adjustToClassName())
  41. assertEquals(null, "_0".adjustToClassName())
  42. assertEquals(null, "_0A".adjustToClassName())
  43. assertEquals("A1", "A1".adjustToClassName())
  44. assertEquals("A1", "A_1".adjustToClassName())
  45. assertEquals("A1", "A-1".adjustToClassName())
  46. assertEquals("MiraiConsoleExample", "mirai-console-example".adjustToClassName())
  47. }
  48. @Test
  49. fun qualifiedClassname() {
  50. useClassNameCases { it.isValidQualifiedClassName() }
  51. assertTrue { "a.b.c".isValidQualifiedClassName() }
  52. }
  53. }