time_range_test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package tsdb
  2. import (
  3. "testing"
  4. "time"
  5. . "github.com/smartystreets/goconvey/convey"
  6. )
  7. func TestTimeRange(t *testing.T) {
  8. Convey("Time range", t, func() {
  9. now := time.Now()
  10. Convey("Can parse 5m, now", func() {
  11. tr := TimeRange{
  12. From: "5m",
  13. To: "now",
  14. Now: now,
  15. }
  16. Convey("5m ago ", func() {
  17. fiveMinAgo, _ := time.ParseDuration("-5m")
  18. expected := now.Add(fiveMinAgo)
  19. res, err := tr.ParseFrom()
  20. So(err, ShouldBeNil)
  21. So(res.Unix(), ShouldEqual, expected.Unix())
  22. })
  23. Convey("now ", func() {
  24. res, err := tr.ParseTo()
  25. So(err, ShouldBeNil)
  26. So(res.Unix(), ShouldEqual, now.Unix())
  27. })
  28. })
  29. Convey("Can parse 5h, now-10m", func() {
  30. tr := TimeRange{
  31. From: "5h",
  32. To: "now-10m",
  33. Now: now,
  34. }
  35. Convey("5h ago ", func() {
  36. fiveHourAgo, _ := time.ParseDuration("-5h")
  37. expected := now.Add(fiveHourAgo)
  38. res, err := tr.ParseFrom()
  39. So(err, ShouldBeNil)
  40. So(res.Unix(), ShouldEqual, expected.Unix())
  41. })
  42. Convey("now-10m ", func() {
  43. tenMinAgo, _ := time.ParseDuration("-10m")
  44. expected := now.Add(tenMinAgo)
  45. res, err := tr.ParseTo()
  46. So(err, ShouldBeNil)
  47. So(res.Unix(), ShouldEqual, expected.Unix())
  48. })
  49. })
  50. Convey("can parse unix epocs", func() {
  51. var err error
  52. tr := TimeRange{
  53. From: "1474973725473",
  54. To: "1474975757930",
  55. Now: now,
  56. }
  57. res, err := tr.ParseFrom()
  58. So(err, ShouldBeNil)
  59. So(res.UnixNano()/int64(time.Millisecond), ShouldEqual, 1474973725473)
  60. res, err = tr.ParseTo()
  61. So(err, ShouldBeNil)
  62. So(res.UnixNano()/int64(time.Millisecond), ShouldEqual, 1474975757930)
  63. })
  64. Convey("Cannot parse asdf", func() {
  65. var err error
  66. tr := TimeRange{
  67. From: "asdf",
  68. To: "asdf",
  69. Now: now,
  70. }
  71. _, err = tr.ParseFrom()
  72. So(err, ShouldNotBeNil)
  73. _, err = tr.ParseTo()
  74. So(err, ShouldNotBeNil)
  75. })
  76. })
  77. }