status_web_test.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package internal
  2. import (
  3. "encoding/json"
  4. "testing"
  5. "time"
  6. . "github.com/smartystreets/goconvey/convey"
  7. )
  8. func TestStatus(t *testing.T) {
  9. Convey("status json ser-de should work", t, func() {
  10. tz := "Asia/Tokyo"
  11. loc, err := time.LoadLocation(tz)
  12. So(err, ShouldBeNil)
  13. t := time.Date(2016, time.April, 16, 23, 8, 10, 0, loc)
  14. m := WebMirrorStatus{
  15. Name: "tunalinux",
  16. Status: Success,
  17. LastUpdate: textTime{t},
  18. LastUpdateTs: stampTime{t},
  19. LastEnded: textTime{t},
  20. LastEndedTs: stampTime{t},
  21. Size: "5GB",
  22. Upstream: "rsync://mirrors.tuna.tsinghua.edu.cn/tunalinux/",
  23. }
  24. b, err := json.Marshal(m)
  25. So(err, ShouldBeNil)
  26. //fmt.Println(string(b))
  27. var m2 WebMirrorStatus
  28. err = json.Unmarshal(b, &m2)
  29. So(err, ShouldBeNil)
  30. // fmt.Printf("%#v", m2)
  31. So(m2.Name, ShouldEqual, m.Name)
  32. So(m2.Status, ShouldEqual, m.Status)
  33. So(m2.LastUpdate.Unix(), ShouldEqual, m.LastUpdate.Unix())
  34. So(m2.LastUpdateTs.Unix(), ShouldEqual, m.LastUpdate.Unix())
  35. So(m2.LastUpdate.UnixNano(), ShouldEqual, m.LastUpdate.UnixNano())
  36. So(m2.LastUpdateTs.UnixNano(), ShouldEqual, m.LastUpdate.UnixNano())
  37. So(m2.LastEnded.Unix(), ShouldEqual, m.LastEnded.Unix())
  38. So(m2.LastEndedTs.Unix(), ShouldEqual, m.LastEnded.Unix())
  39. So(m2.LastEnded.UnixNano(), ShouldEqual, m.LastEnded.UnixNano())
  40. So(m2.LastEndedTs.UnixNano(), ShouldEqual, m.LastEnded.UnixNano())
  41. So(m2.Size, ShouldEqual, m.Size)
  42. So(m2.Upstream, ShouldEqual, m.Upstream)
  43. })
  44. Convey("BuildWebMirrorStatus should work", t, func() {
  45. m := MirrorStatus{
  46. Name: "arch-sync3",
  47. Worker: "testWorker",
  48. IsMaster: true,
  49. Status: Failed,
  50. LastUpdate: time.Now().Add(-time.Minute * 30),
  51. LastEnded: time.Now(),
  52. Upstream: "mirrors.tuna.tsinghua.edu.cn",
  53. Size: "4GB",
  54. }
  55. var m2 WebMirrorStatus
  56. m2 = BuildWebMirrorStatus(m)
  57. // fmt.Printf("%#v", m2)
  58. So(m2.Name, ShouldEqual, m.Name)
  59. So(m2.Status, ShouldEqual, m.Status)
  60. So(m2.LastUpdate.Unix(), ShouldEqual, m.LastUpdate.Unix())
  61. So(m2.LastUpdateTs.Unix(), ShouldEqual, m.LastUpdate.Unix())
  62. So(m2.LastUpdate.UnixNano(), ShouldEqual, m.LastUpdate.UnixNano())
  63. So(m2.LastUpdateTs.UnixNano(), ShouldEqual, m.LastUpdate.UnixNano())
  64. So(m2.LastEnded.Unix(), ShouldEqual, m.LastEnded.Unix())
  65. So(m2.LastEndedTs.Unix(), ShouldEqual, m.LastEnded.Unix())
  66. So(m2.LastEnded.UnixNano(), ShouldEqual, m.LastEnded.UnixNano())
  67. So(m2.LastEndedTs.UnixNano(), ShouldEqual, m.LastEnded.UnixNano())
  68. So(m2.Size, ShouldEqual, m.Size)
  69. So(m2.Upstream, ShouldEqual, m.Upstream)
  70. })
  71. }