cache_test.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package server
  2. import (
  3. "github.com/stretchr/testify/assert"
  4. "testing"
  5. "time"
  6. )
  7. func testCacheMessages(t *testing.T, c cache) {
  8. m1 := newDefaultMessage("mytopic", "my message")
  9. m1.Time = 1
  10. m2 := newDefaultMessage("mytopic", "my other message")
  11. m2.Time = 2
  12. assert.Nil(t, c.AddMessage(m1))
  13. assert.Nil(t, c.AddMessage(newDefaultMessage("example", "my example message")))
  14. assert.Nil(t, c.AddMessage(m2))
  15. // Adding invalid
  16. assert.Equal(t, errUnexpectedMessageType, c.AddMessage(newKeepaliveMessage("mytopic"))) // These should not be added!
  17. assert.Equal(t, errUnexpectedMessageType, c.AddMessage(newOpenMessage("example"))) // These should not be added!
  18. // mytopic: count
  19. count, err := c.MessageCount("mytopic")
  20. assert.Nil(t, err)
  21. assert.Equal(t, 2, count)
  22. // mytopic: since all
  23. messages, _ := c.Messages("mytopic", sinceAllMessages)
  24. assert.Equal(t, 2, len(messages))
  25. assert.Equal(t, "my message", messages[0].Message)
  26. assert.Equal(t, "mytopic", messages[0].Topic)
  27. assert.Equal(t, messageEvent, messages[0].Event)
  28. assert.Equal(t, "", messages[0].Title)
  29. assert.Equal(t, 0, messages[0].Priority)
  30. assert.Nil(t, messages[0].Tags)
  31. assert.Equal(t, "my other message", messages[1].Message)
  32. // mytopic: since none
  33. messages, _ = c.Messages("mytopic", sinceNoMessages)
  34. assert.Empty(t, messages)
  35. // mytopic: since 2
  36. messages, _ = c.Messages("mytopic", sinceTime(time.Unix(2, 0)))
  37. assert.Equal(t, 1, len(messages))
  38. assert.Equal(t, "my other message", messages[0].Message)
  39. // example: count
  40. count, err = c.MessageCount("example")
  41. assert.Nil(t, err)
  42. assert.Equal(t, 1, count)
  43. // example: since all
  44. messages, _ = c.Messages("example", sinceAllMessages)
  45. assert.Equal(t, "my example message", messages[0].Message)
  46. // non-existing: count
  47. count, err = c.MessageCount("doesnotexist")
  48. assert.Nil(t, err)
  49. assert.Equal(t, 0, count)
  50. // non-existing: since all
  51. messages, _ = c.Messages("doesnotexist", sinceAllMessages)
  52. assert.Empty(t, messages)
  53. }
  54. func testCacheMessagesTagsPrioAndTitle(t *testing.T, c cache) {
  55. m := newDefaultMessage("mytopic", "some message")
  56. m.Tags = []string{"tag1", "tag2"}
  57. m.Priority = 5
  58. m.Title = "some title"
  59. assert.Nil(t, c.AddMessage(m))
  60. messages, _ := c.Messages("mytopic", sinceAllMessages)
  61. assert.Equal(t, []string{"tag1", "tag2"}, messages[0].Tags)
  62. assert.Equal(t, 5, messages[0].Priority)
  63. assert.Equal(t, "some title", messages[0].Title)
  64. }