status_test.go 984 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package status
  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/Shanghai"
  11. loc, err := time.LoadLocation(tz)
  12. So(err, ShouldBeNil)
  13. m := MirrorStatus{
  14. Name: "tunalinux",
  15. Status: Success,
  16. LastUpdate: time.Date(2016, time.April, 16, 23, 8, 10, 0, loc),
  17. Size: "5GB",
  18. Upstream: "rsync://mirrors.tuna.tsinghua.edu.cn/tunalinux/",
  19. }
  20. b, err := json.Marshal(m)
  21. So(err, ShouldBeNil)
  22. // fmt.Println(string(b))
  23. var m2 MirrorStatus
  24. err = json.Unmarshal(b, &m2)
  25. So(err, ShouldBeNil)
  26. // fmt.Printf("%#v", m2)
  27. So(m2.Name, ShouldEqual, m.Name)
  28. So(m2.Status, ShouldEqual, m.Status)
  29. So(m2.LastUpdate.Unix(), ShouldEqual, m.LastUpdate.Unix())
  30. So(m2.LastUpdate.UnixNano(), ShouldEqual, m.LastUpdate.UnixNano())
  31. So(m2.Size, ShouldEqual, m.Size)
  32. So(m2.Upstream, ShouldEqual, m.Upstream)
  33. })
  34. }