http_client_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package datacenter
  2. import (
  3. "context"
  4. "crypto/md5"
  5. "fmt"
  6. "go-common/library/log"
  7. "net/url"
  8. "os"
  9. "testing"
  10. )
  11. func TestMain(m *testing.M) {
  12. log.Init(nil)
  13. os.Exit(m.Run())
  14. }
  15. func TestSign(t *testing.T) {
  16. var params = url.Values{
  17. "timestamp": {"2018-11-19 18:50:28"},
  18. "version": {"1.0"},
  19. }
  20. var result = "appKey12345timestamp2018-11-19 18:50:28version1.0"
  21. var md5hash = md5.New()
  22. var conf = ClientConfig{
  23. Key: "12345", Secret: "56473",
  24. }
  25. md5hash.Write([]byte(conf.Secret + result + conf.Secret))
  26. var signString = fmt.Sprintf("%X", md5hash.Sum(nil))
  27. t.Logf("sign string=%s", signString)
  28. c := New(&conf)
  29. s, e := c.sign(params)
  30. if e != nil {
  31. t.Errorf("err happend, %+v", e)
  32. t.FailNow()
  33. return
  34. }
  35. if s != signString {
  36. t.Logf("fail, expect=%s, get=%s", signString, s)
  37. t.FailNow()
  38. return
  39. }
  40. }
  41. func TestAPI(t *testing.T) {
  42. var q = &Query{}
  43. q.Select("id, day").
  44. Where(
  45. ConditionMapType{"day": ConditionLte("2018-10-28")}).
  46. Limit(20, 0).Order("day")
  47. var params = url.Values{
  48. //"timestamp": {"2018-11-19 18:50:28"},
  49. //"version": {"1.0"},
  50. "query": {q.String()},
  51. }
  52. var conf = ClientConfig{
  53. Key: "b9739fc84d087c4b3c1aa297d01999e6", Secret: "5018928e83a23c0cc9773f2571de01e5",
  54. }
  55. c := New(&conf)
  56. var res = &Response{}
  57. var realResult struct {
  58. Result []struct {
  59. ID int `json:"id"`
  60. Day string `json:"day"`
  61. }
  62. }
  63. var middle interface{} = &realResult.Result
  64. res.Result = middle
  65. c.Debug = true
  66. var e = c.Get(context.Background(), "http://berserker.bilibili.co/avenger/api/151/query", params, res)
  67. if e != nil {
  68. t.Errorf("err=%+v", e)
  69. t.FailNow()
  70. }
  71. t.Logf("result=%+v", res)
  72. for k, v := range realResult.Result {
  73. t.Logf("k=%v, v=%+v", k, v)
  74. }
  75. }