volume_ttl_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package needle
  2. import (
  3. "testing"
  4. )
  5. func TestTTLReadWrite(t *testing.T) {
  6. ttl, _ := ReadTTL("")
  7. if ttl.Minutes() != 0 {
  8. t.Errorf("empty ttl:%v", ttl)
  9. }
  10. ttl, _ = ReadTTL("9")
  11. if ttl.Minutes() != 9 {
  12. t.Errorf("9 ttl:%v", ttl)
  13. }
  14. ttl, _ = ReadTTL("8m")
  15. if ttl.Minutes() != 8 {
  16. t.Errorf("8m ttl:%v", ttl)
  17. }
  18. ttl, _ = ReadTTL("5h")
  19. if ttl.Minutes() != 300 {
  20. t.Errorf("5h ttl:%v", ttl)
  21. }
  22. ttl, _ = ReadTTL("5d")
  23. if ttl.Minutes() != 5*24*60 {
  24. t.Errorf("5d ttl:%v", ttl)
  25. }
  26. ttl, _ = ReadTTL("50d")
  27. if ttl.Minutes() != 50*24*60 {
  28. t.Errorf("50d ttl:%v", ttl)
  29. }
  30. ttl, _ = ReadTTL("365d")
  31. if ttl.Minutes() != 365*24*60 {
  32. t.Errorf("365d ttl:%v", ttl)
  33. }
  34. ttl, _ = ReadTTL("730d")
  35. if ttl.Minutes() != 730*24*60 {
  36. t.Errorf("730d ttl:%v", ttl)
  37. }
  38. ttl, _ = ReadTTL("5w")
  39. if ttl.Minutes() != 5*7*24*60 {
  40. t.Errorf("5w ttl:%v", ttl)
  41. }
  42. ttl, _ = ReadTTL("5M")
  43. if ttl.Minutes() != 5*30*24*60 {
  44. t.Errorf("5M ttl:%v", ttl)
  45. }
  46. ttl, _ = ReadTTL("5y")
  47. if ttl.Minutes() != 5*365*24*60 {
  48. t.Errorf("5y ttl:%v", ttl)
  49. }
  50. output := make([]byte, 2)
  51. ttl.ToBytes(output)
  52. ttl2 := LoadTTLFromBytes(output)
  53. if ttl.Minutes() != ttl2.Minutes() {
  54. t.Errorf("ttl:%v ttl2:%v", ttl, ttl2)
  55. }
  56. ttl3 := LoadTTLFromUint32(ttl.ToUint32())
  57. if ttl.Minutes() != ttl3.Minutes() {
  58. t.Errorf("ttl:%v ttl3:%v", ttl, ttl3)
  59. }
  60. }