Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

CaseInsensitiveSetTest.kt 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.dmdirc.ktirc.model
  2. import com.dmdirc.ktirc.io.CaseMapping
  3. import org.junit.jupiter.api.Assertions.*
  4. import org.junit.jupiter.api.Test
  5. internal class CaseInsensitiveSetTest {
  6. val set = CaseInsensitiveSet { CaseMapping.Rfc }
  7. @Test
  8. fun `isEmpty returns true when there are no items`() {
  9. assertTrue(set.isEmpty())
  10. set += "gibson"
  11. assertFalse(set.isEmpty())
  12. set -= "gibson"
  13. assertTrue(set.isEmpty())
  14. }
  15. @Test
  16. fun `items can be added to the set`() {
  17. set += "libby"
  18. assertEquals(setOf("libby"), set.toSet())
  19. set += "dade"
  20. assertEquals(setOf("libby", "dade"), set.toSet())
  21. }
  22. @Test
  23. fun `items can be removed from the set`() {
  24. set += "acidBurn"
  25. set += "zeroCool"
  26. set -= "acidBurn"
  27. assertEquals(setOf("zeroCool"), set.toSet())
  28. }
  29. @Test
  30. fun `items can be removed from the set using a different case`() {
  31. set += "acidBurn"
  32. set += "zeroCool"
  33. set -= "ACIDburn"
  34. assertEquals(setOf("zeroCool"), set.toSet())
  35. }
  36. @Test
  37. fun `adding the same item in a different case has no effect`() {
  38. set += "acidBurn[]"
  39. set += "Acidburn[]"
  40. set += "acidBurn{}"
  41. assertEquals(1, set.count())
  42. }
  43. @Test
  44. fun `contains indicates if a case-insensitive match is in the set`() {
  45. set += "acidBurn[]"
  46. assertTrue("acidBurn[]" in set)
  47. assertTrue("AcidBurn[]" in set)
  48. assertTrue("acidBurn{}" in set)
  49. assertFalse("zeroCool" in set)
  50. }
  51. }