sql_engine_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package tsdb
  2. import (
  3. "testing"
  4. "time"
  5. . "github.com/smartystreets/goconvey/convey"
  6. )
  7. func TestSqlEngine(t *testing.T) {
  8. Convey("SqlEngine", t, func() {
  9. Convey("Given row values with time columns when converting them", func() {
  10. dt := time.Date(2018, 3, 14, 21, 20, 6, 527e6, time.UTC)
  11. fixtures := make([]interface{}, 8)
  12. fixtures[0] = dt
  13. fixtures[1] = dt.Unix() * 1000
  14. fixtures[2] = dt.Unix()
  15. fixtures[3] = float64(dt.Unix() * 1000)
  16. fixtures[4] = float64(dt.Unix())
  17. var nilDt *time.Time
  18. var nilInt64 *int64
  19. var nilFloat64 *float64
  20. fixtures[5] = nilDt
  21. fixtures[6] = nilInt64
  22. fixtures[7] = nilFloat64
  23. for i := range fixtures {
  24. ConvertSqlTimeColumnToEpochMs(fixtures, i)
  25. }
  26. Convey("Should convert sql time columns to epoch time in ms ", func() {
  27. expected := float64(dt.Unix() * 1000)
  28. So(fixtures[0].(float64), ShouldEqual, expected)
  29. So(fixtures[1].(int64), ShouldEqual, expected)
  30. So(fixtures[2].(int64), ShouldEqual, expected)
  31. So(fixtures[3].(float64), ShouldEqual, expected)
  32. So(fixtures[4].(float64), ShouldEqual, expected)
  33. So(fixtures[5], ShouldBeNil)
  34. So(fixtures[6], ShouldBeNil)
  35. So(fixtures[7], ShouldBeNil)
  36. })
  37. })
  38. })
  39. }