volume_ttl_test.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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("5w")
  27. if ttl.Minutes() != 5*7*24*60 {
  28. t.Errorf("5w ttl:%v", ttl)
  29. }
  30. ttl, _ = ReadTTL("5M")
  31. if ttl.Minutes() != 5*31*24*60 {
  32. t.Errorf("5M ttl:%v", ttl)
  33. }
  34. ttl, _ = ReadTTL("5y")
  35. if ttl.Minutes() != 5*365*24*60 {
  36. t.Errorf("5y ttl:%v", ttl)
  37. }
  38. output := make([]byte, 2)
  39. ttl.ToBytes(output)
  40. ttl2 := LoadTTLFromBytes(output)
  41. if ttl.Minutes() != ttl2.Minutes() {
  42. t.Errorf("ttl:%v ttl2:%v", ttl, ttl2)
  43. }
  44. ttl3 := LoadTTLFromUint32(ttl.ToUint32())
  45. if ttl.Minutes() != ttl3.Minutes() {
  46. t.Errorf("ttl:%v ttl3:%v", ttl, ttl3)
  47. }
  48. }