Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

162 lines
5.1KB

  1. package main
  2. import (
  3. "testing"
  4. )
  5. func TestReadCommonHeader(t *testing.T) {
  6. SetupConfig()
  7. var msg = `<xml><ToUserName><![CDATA[gh_f09231355c68]]></ToUserName>
  8. <FromUserName><![CDATA[oUN420bxqFqlx0ZQHciUOesZO3PE]]></FromUserName>
  9. <CreateTime>1492972518</CreateTime>
  10. <MsgType><![CDATA[event]]></MsgType>
  11. <Event><![CDATA[CLICK]]></Event>
  12. <EventKey><![CDATA[V1001_TODAY_MUSIC]]></EventKey>
  13. </xml>`
  14. h := ReadCommonHeader(msg)
  15. AssertEqual(t, h.ToUserName, "gh_f09231355c68", "ToUserName failed")
  16. AssertEqual(t, h.FromUserName, "oUN420bxqFqlx0ZQHciUOesZO3PE", "FromUserName failed")
  17. AssertEqual(t, h.CreateTime, int64(1492972518), "CreateTime Failed")
  18. AssertEqual(t, h.MsgType, "event", "MsgType failed")
  19. }
  20. func TestTxtMsg(t *testing.T) {
  21. msg := `<xml>
  22. <ToUserName><![CDATA[toUser]]></ToUserName>
  23. <FromUserName><![CDATA[fromUser]]></FromUserName>
  24. <CreateTime>1348831860</CreateTime>
  25. <MsgType><![CDATA[text]]></MsgType>
  26. <Content><![CDATA[this is a test]]></Content>
  27. <MsgId>1234567890123456</MsgId>
  28. </xml>`
  29. h := ReadCommonHeader(msg)
  30. m := ReadTextMsg(msg)
  31. AssertEqual(t, m.Content, "this is a test", "Content failed")
  32. AssertEqual(t, h.MsgType, "text", "")
  33. AssertEqual(t, m.MsgId, int64(1234567890123456), "")
  34. }
  35. func TestPicMsg(t *testing.T) {
  36. msg := `<xml>
  37. <ToUserName><![CDATA[toUser]]></ToUserName>
  38. <FromUserName><![CDATA[fromUser]]></FromUserName>
  39. <CreateTime>1348831860</CreateTime>
  40. <MsgType><![CDATA[image]]></MsgType>
  41. <PicUrl><![CDATA[this is a url]]></PicUrl>
  42. <MediaId><![CDATA[media_id]]></MediaId>
  43. <MsgId>1234567890123456</MsgId>
  44. </xml>`
  45. h := ReadCommonHeader(msg)
  46. AssertEqual(t, h.MsgType, "image", "")
  47. m := ReadPicMsg(msg)
  48. AssertEqual(t, m.MediaId, "media_id", "Media id failed")
  49. AssertEqual(t, m.PicUrl, "this is a url", "PicUrl failed")
  50. AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
  51. }
  52. func TestVoiceMsg(t *testing.T) {
  53. msg := `<xml>
  54. <ToUserName><![CDATA[toUser]]></ToUserName>
  55. <FromUserName><![CDATA[fromUser]]></FromUserName>
  56. <CreateTime>1357290913</CreateTime>
  57. <MsgType><![CDATA[voice]]></MsgType>
  58. <MediaId><![CDATA[media_id]]></MediaId>
  59. <Format><![CDATA[Format]]></Format>
  60. <Recognition><![CDATA[some result]]></Recognition>
  61. <MsgId>1234567890123456</MsgId>
  62. </xml>`
  63. h := ReadCommonHeader(msg)
  64. AssertEqual(t, h.MsgType, "voice", "Message type should be voice")
  65. m := ReadVoiceMsg(msg)
  66. AssertEqual(t, m.MediaId, "media_id", "Media id failed")
  67. AssertEqual(t, m.Format, "Format", "Format failed")
  68. AssertEqual(t, m.Recognition, "some result", "Recognition failed")
  69. AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
  70. }
  71. func TestVideoMsg(t *testing.T) {
  72. msg := `<xml>
  73. <ToUserName><![CDATA[toUser]]></ToUserName>
  74. <FromUserName><![CDATA[fromUser]]></FromUserName>
  75. <CreateTime>1357290913</CreateTime>
  76. <MsgType><![CDATA[video]]></MsgType>
  77. <MediaId><![CDATA[media_id]]></MediaId>
  78. <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
  79. <MsgId>1234567890123456</MsgId>
  80. </xml>`
  81. h := ReadCommonHeader(msg)
  82. AssertEqual(t, h.MsgType, "video", "Message type should be video")
  83. m := ReadVideoMsg(msg)
  84. AssertEqual(t, m.MediaId, "media_id", "Media id failed")
  85. AssertEqual(t, m.ThumbMediaId, "thumb_media_id", "Format failed")
  86. AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
  87. }
  88. func TestShortVideoMsg(t *testing.T) {
  89. msg := `<xml>
  90. <ToUserName><![CDATA[toUser]]></ToUserName>
  91. <FromUserName><![CDATA[fromUser]]></FromUserName>
  92. <CreateTime>1357290913</CreateTime>
  93. <MsgType><![CDATA[shortvideo]]></MsgType>
  94. <MediaId><![CDATA[media_id]]></MediaId>
  95. <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
  96. <MsgId>1234567890123456</MsgId>
  97. </xml>`
  98. h := ReadCommonHeader(msg)
  99. AssertEqual(t, h.MsgType, "shortvideo", "Message type should be video")
  100. m := ReadShortVideoMsg(msg)
  101. AssertEqual(t, m.MediaId, "media_id", "Media id failed")
  102. AssertEqual(t, m.ThumbMediaId, "thumb_media_id", "Format failed")
  103. AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
  104. }
  105. func TestLocationMsg(t *testing.T) {
  106. msg := `<xml>
  107. <ToUserName><![CDATA[toUser]]></ToUserName>
  108. <FromUserName><![CDATA[fromUser]]></FromUserName>
  109. <CreateTime>1351776360</CreateTime>
  110. <MsgType><![CDATA[location]]></MsgType>
  111. <Location_X>23.134521</Location_X>
  112. <Location_Y>113.358803</Location_Y>
  113. <Scale>20</Scale>
  114. <Label><![CDATA[Location description]]></Label>
  115. <MsgId>1234567890123456</MsgId>
  116. </xml>`
  117. h := ReadCommonHeader(msg)
  118. AssertEqual(t, h.MsgType, "location", "Message type should be video")
  119. m := ReadLocationMsg(msg)
  120. AssertEqual(t, m.Location_X, (float64(23.134521)), "Location_X failed")
  121. AssertEqual(t, m.Location_Y, (float64(113.358803)), "Location_Y failed")
  122. AssertEqual(t, m.Scale, int(22), "Format failed")
  123. AssertEqual(t, m.Label, "Location description", "Location Label failed")
  124. AssertEqual(t, m.MsgId, int64(1234567890123456), "MsgId not match")
  125. }
  126. /*
  127. func TestLinkMsg(t *testing.T) {
  128. msg := `<xml>
  129. <ToUserName><![CDATA[toUser]]></ToUserName>
  130. <FromUserName><![CDATA[fromUser]]></FromUserName>
  131. <CreateTime>1351776360</CreateTime>
  132. <MsgType><![CDATA[link]]></MsgType>
  133. <Title><![CDATA[公众平台官网链接]]></Title>
  134. <Description><![CDATA[公众平台官网链接]]></Description>
  135. <Url><![CDATA[url]]></Url>
  136. <MsgId>1234567890123456</MsgId>
  137. </xml>`
  138. }
  139. */