You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 line
9.1KB

  1. package main
  2. import (
  3. "log"
  4. "testing"
  5. )
  6. func TestGetMaterialList(t *testing.T) {
  7. SetupConfig()
  8. l := getNewList()
  9. log.Printf("news is : %s", l)
  10. l = getVoiceList()
  11. log.Printf("voice is : %s", l)
  12. l = getVideoList()
  13. log.Printf("video is : %s", l)
  14. l = getImageList()
  15. log.Printf("Image is : %s", l)
  16. }
  17. func TestGetMaterialCount(t *testing.T) {
  18. SetupConfig()
  19. mc, err := getMaterialCount()
  20. if err != nil {
  21. log.Fatal(err)
  22. }
  23. log.Printf("Voice: %d", mc.VoiceCount)
  24. log.Printf("Video: %d", mc.VideoCount)
  25. log.Printf("Image: %d", mc.ImageCount)
  26. log.Printf("News : %d", mc.NewsCount)
  27. }
  28. func TestUnmarshalImageList(t *testing.T) {
  29. msg := `
  30. {"item": [
  31. {
  32. "media_id": "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0",
  33. "name": "hit_logo.jpg",
  34. "update_time": 1494466025,
  35. "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg"
  36. },
  37. {
  38. "media_id": "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak",
  39. "name": "hit_font.jpg",
  40. "update_time": 1494466018,
  41. "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw\/0?wx_fmt=jpeg"
  42. },
  43. {
  44. "media_id": "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68",
  45. "name": "logo-gold-964x640.png",
  46. "update_time": 1492696182,
  47. "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png"
  48. }
  49. ],
  50. "total_count": 30,
  51. "item_count": 3
  52. }`
  53. r := unmarshalImageList(msg)
  54. AssertEqual(t, r.TotalCount, 30, "Total count should be 30")
  55. AssertEqual(t, r.ItemCount, 3, "Item count should be 3")
  56. //individual items
  57. AssertEqual(t, r.Items[0].MediaID, "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0", "Item[0] media id mismatch")
  58. AssertEqual(t, r.Items[0].Name, "hit_logo.jpg", "Item[0].name expect [hit_logo.jpg] not ["+r.Items[0].Name+"]")
  59. AssertEqual(t, r.Items[0].UpdateTime, 1494466025, "Item[0] updatetime wrong")
  60. AssertEqual(t, r.Items[0].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g/0?wx_fmt=jpeg", "Item[0] URL wrong")
  61. AssertEqual(t, r.Items[1].MediaID, "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak", "Item[1] media id mismatch")
  62. AssertEqual(t, r.Items[1].Name, "hit_font.jpg", "Item[1].name expect [hit_font.jpg] not ["+r.Items[0].Name+"]")
  63. AssertEqual(t, r.Items[1].UpdateTime, 1494466018, "Item[1] updatetime wrong")
  64. AssertEqual(t, r.Items[1].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw/0?wx_fmt=jpeg", "Item[1] URL wrong")
  65. AssertEqual(t, r.Items[2].MediaID, "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68", "Item[2] media id mismatch")
  66. AssertEqual(t, r.Items[2].Name, "logo-gold-964x640.png", "Item[2].name expect [logo-gold-964x640.png] not ["+r.Items[0].Name+"]")
  67. AssertEqual(t, r.Items[2].UpdateTime, 1492696182, "Item[2] update time mismatch ")
  68. AssertEqual(t, r.Items[2].URL, "http://mmbiz.qpic.cn/mmbiz_png/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw/0?wx_fmt=png", "Item[2] URL wrong")
  69. }
  70. func TestUnmarshalNewsList(t *testing.T) {
  71. msg := `
  72. {
  73. "item": [
  74. {
  75. "media_id": "e2iNEiSxCX5TV1WbFd0TQP4_MKtjcY1q-4UPIZFrHhw",
  76. "content": {
  77. "news_item": [
  78. {
  79. "title": "新人入会前几周推荐",
  80. "author": "孙鹏",
  81. "digest": "摘要",
  82. "content": "<p>&nbsp;&nbsp;&nbsp;&nbsp;新人入会,前几周推荐做如下几件事情<\/p><p><img data-s=\"300,640\" data-type=\"jpeg\" data-src=\"http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg\" data-ratio=\"0.9035087719298246\" data-w=\"342\" \/><\/p><p><br \/><\/p>",
  83. "content_source_url": "",
  84. "thumb_media_id": "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM",
  85. "show_cover_pic": 0,
  86. "url": "http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000008&idx=1&sn=cbfd3f5f5367ca67f9a1184eb394f788&chksm=790868374e7fe121ac5e1d27f6d082c3f8e8033eb4e7158615d0a69dc76ac2971e5650b28fac#rd",
  87. "thumb_url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg",
  88. "need_open_comment": 0,
  89. "only_fans_can_comment": 0
  90. }
  91. ],
  92. "create_time": 1494488254,
  93. "update_time": 1494488268
  94. },
  95. "update_time": 1494488268
  96. },
  97. {
  98. "media_id": "e2iNEiSxCX5TV1WbFd0TQMqvVrqFDbDOacdjgQ-OAuE",
  99. "content": {
  100. "news_item": [
  101. {
  102. "title": "测试消息",
  103. "author": "孙鹏",
  104. "digest": "加入校友会",
  105. "content": "<p>加入校友会<\/p><p><img data-s=\"300,640\" data-type=\"png\" data-src=\"http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png\" data-ratio=\"0.6765327695560254\" data-w=\"946\" \/><\/p><p><br \/><\/p>",
  106. "content_source_url": "http:\/\/www.hitxy.org.au\/join",
  107. "thumb_media_id": "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM",
  108. "show_cover_pic": 0,
  109. "url": "http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000002&idx=1&sn=723bf16b52f88345e5a73ccde1c79bdb&chksm=7908683d4e7fe12bcaefa9c563809db5546ab97af7184ec648f20930fab5c1d95ee825409c0d#rd",
  110. "thumb_url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png",
  111. "need_open_comment": 0,
  112. "only_fans_can_comment": 0
  113. }
  114. ],
  115. "create_time": 1492696196,
  116. "update_time": 1492696243
  117. },
  118. "update_time": 1492696243
  119. }
  120. ],
  121. "total_count": 20,
  122. "item_count": 2
  123. }
  124. `
  125. r := unmarshalNewsList(msg)
  126. AssertEqual(t, r.TotalCount, 20, "Total count should be 20")
  127. AssertEqual(t, r.ItemCount, 2, "Item count should be 2")
  128. cnt := len(r.Items)
  129. AssertEqual(t, cnt, 2, "")
  130. //first item
  131. item := r.Items[0]
  132. AssertEqual(t, item.MediaID, "e2iNEiSxCX5TV1WbFd0TQP4_MKtjcY1q-4UPIZFrHhw", "Item[0] media ID wrong")
  133. //AssertEqual(t, item.CreateTime, 1494488254, "Item[0] create time wrong")
  134. AssertEqual(t, item.UpdateTime, 1494488268, "Item[0] update time wrong")
  135. //second item
  136. item = r.Items[1]
  137. AssertEqual(t, item.MediaID, "e2iNEiSxCX5TV1WbFd0TQMqvVrqFDbDOacdjgQ-OAuE", "Item[1] media ID wrong")
  138. //AssertEqual(t, item.CreateTime, 1494488254, "Item[1] create time wrong")
  139. AssertEqual(t, item.UpdateTime, 1492696243, "Item[1] update time wrong")
  140. AssertEqual(t, item.Content.CreateTime, 1492696196, "Item[1] update time wrong")
  141. AssertEqual(t, item.Content.UpdateTime, 1492696243, "Item[1] update time wrong")
  142. AssertEqual(t, item.Content.NewsItem[0].Title, "测试消息", "Item[1] update time wrong")
  143. AssertEqual(t, item.Content.NewsItem[0].Author, "孙鹏", "Item[1] update time wrong")
  144. AssertEqual(t, item.Content.NewsItem[0].Digest, "加入校友会", "Item[1] update time wrong")
  145. AssertEqual(t, item.Content.NewsItem[0].Content, "<p>加入校友会</p><p><img data-s=\"300,640\" data-type=\"png\" data-src=\"http://mmbiz.qpic.cn/mmbiz_png/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw/0?wx_fmt=png\" data-ratio=\"0.6765327695560254\" data-w=\"946\" /></p><p><br /></p>", "article content wrong")
  146. AssertEqual(t, item.Content.NewsItem[0].ContentSourceURL, "http://www.hitxy.org.au/join", "Item[1] update time wrong")
  147. AssertEqual(t, item.Content.NewsItem[0].ThumbMediaID, "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM", "Item[1] update time wrong")
  148. AssertEqual(t, item.Content.NewsItem[0].ShowCoverPic, 0, "Item[1] update time wrong")
  149. AssertEqual(t, item.Content.NewsItem[0].URL, "http://mp.weixin.qq.com/s?__biz=MzUxMDAzNDAwMA==&mid=100000002&idx=1&sn=723bf16b52f88345e5a73ccde1c79bdb&chksm=7908683d4e7fe12bcaefa9c563809db5546ab97af7184ec648f20930fab5c1d95ee825409c0d#rd", "Article URL is not right")
  150. AssertEqual(t, item.Content.NewsItem[0].ThumbURL, "http://mmbiz.qpic.cn/mmbiz_png/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw/0?wx_fmt=png", "Article Thumb URL wrong")
  151. AssertEqual(t, item.Content.NewsItem[0].NeedOpenComment, 0, "Need Open Comment should be 0")
  152. AssertEqual(t, item.Content.NewsItem[0].OnlyFansCanComment, 0, "OnlyFansCanComment should be 0")
  153. }