package main import ( "log" "testing" ) func TestGetMaterialList(t *testing.T) { SetupConfig() l := getNewList() log.Printf("news is : %s", l) l = getVoiceList() log.Printf("voice is : %s", l) l = getVideoList() log.Printf("video is : %s", l) l = getImageList() log.Printf("Image is : %s", l) } func TestGetMaterialCount(t *testing.T) { SetupConfig() mc, err := getMaterialCount() if err != nil { log.Fatal(err) } log.Printf("Voice: %d", mc.VoiceCount) log.Printf("Video: %d", mc.VideoCount) log.Printf("Image: %d", mc.ImageCount) log.Printf("News : %d", mc.NewsCount) } func TestUnmarshalImageList(t *testing.T) { msg := ` {"item": [ { "media_id": "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0", "name": "hit_logo.jpg", "update_time": 1494466025, "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg" }, { "media_id": "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak", "name": "hit_font.jpg", "update_time": 1494466018, "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw\/0?wx_fmt=jpeg" }, { "media_id": "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68", "name": "logo-gold-964x640.png", "update_time": 1492696182, "url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png" } ], "total_count": 30, "item_count": 3 }` r := unmarshalImageList(msg) AssertEqual(t, r.TotalCount, 30, "Total count should be 30") AssertEqual(t, r.ItemCount, 3, "Item count should be 3") //individual items AssertEqual(t, r.Items[0].MediaID, "e2iNEiSxCX5TV1WbFd0TQCOZJ6FrmbKe7sjUrIZnkW0", "Item[0] media id mismatch") AssertEqual(t, r.Items[0].Name, "hit_logo.jpg", "Item[0].name expect [hit_logo.jpg] not ["+r.Items[0].Name+"]") AssertEqual(t, r.Items[0].UpdateTime, 1494466025, "Item[0] updatetime wrong") AssertEqual(t, r.Items[0].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g/0?wx_fmt=jpeg", "Item[0] URL wrong") AssertEqual(t, r.Items[1].MediaID, "e2iNEiSxCX5TV1WbFd0TQOo3v5NmyZKIzG6erS8Heak", "Item[1] media id mismatch") AssertEqual(t, r.Items[1].Name, "hit_font.jpg", "Item[1].name expect [hit_font.jpg] not ["+r.Items[0].Name+"]") AssertEqual(t, r.Items[1].UpdateTime, 1494466018, "Item[1] updatetime wrong") AssertEqual(t, r.Items[1].URL, "http://mmbiz.qpic.cn/mmbiz_jpg/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUvogs2hibSk6eqlcYZdZj3d5DLYMj4xAFuD9rp4e0s3O8B46Hgb6mETw/0?wx_fmt=jpeg", "Item[1] URL wrong") AssertEqual(t, r.Items[2].MediaID, "e2iNEiSxCX5TV1WbFd0TQP9e-7cyXtbHoxptztJgz68", "Item[2] media id mismatch") AssertEqual(t, r.Items[2].Name, "logo-gold-964x640.png", "Item[2].name expect [logo-gold-964x640.png] not ["+r.Items[0].Name+"]") AssertEqual(t, r.Items[2].UpdateTime, 1492696182, "Item[2] update time mismatch ") AssertEqual(t, r.Items[2].URL, "http://mmbiz.qpic.cn/mmbiz_png/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw/0?wx_fmt=png", "Item[2] URL wrong") } func TestUnmarshalNewsList(t *testing.T) { msg := ` { "item": [ { "media_id": "e2iNEiSxCX5TV1WbFd0TQP4_MKtjcY1q-4UPIZFrHhw", "content": { "news_item": [ { "title": "新人入会前几周推荐", "author": "abc", "digest": "excerpt", "content": "
新人入会,前几周推荐做如下几件事情<\/p>
<\/p>
<\/p>",
"content_source_url": "",
"thumb_media_id": "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM",
"show_cover_pic": 0,
"url": "http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000008&idx=1&sn=cbfd3f5f5367ca67f9a1184eb394f788&chksm=790868374e7fe121ac5e1d27f6d082c3f8e8033eb4e7158615d0a69dc76ac2971e5650b28fac#rd",
"thumb_url": "http:\/\/mmbiz.qpic.cn\/mmbiz_jpg\/WiaVAicTdo7zMBVOE4QKxFFnFwbnFbyYGUs0YQBiatN97ibIgOWE4picXg49jj1k5TRibswd7DzLC1CCvJco0Kic9T90g\/0?wx_fmt=jpeg",
"need_open_comment": 0,
"only_fans_can_comment": 0
}
],
"create_time": 1494488254,
"update_time": 1494488268
},
"update_time": 1494488268
},
{
"media_id": "e2iNEiSxCX5TV1WbFd0TQMqvVrqFDbDOacdjgQ-OAuE",
"content": {
"news_item": [
{
"title": "测试消息",
"author": "孙鹏",
"digest": "加入校友会",
"content": "
加入校友会<\/p>
<\/p>
<\/p>",
"content_source_url": "http:\/\/www.hitxy.org.au\/join",
"thumb_media_id": "SCqYVM0F3OSBIqptPWQ5ZjDYlLvKsEtHHaYnHLyXbeM",
"show_cover_pic": 0,
"url": "http:\/\/mp.weixin.qq.com\/s?__biz=MzUxMDAzNDAwMA==&mid=100000002&idx=1&sn=723bf16b52f88345e5a73ccde1c79bdb&chksm=7908683d4e7fe12bcaefa9c563809db5546ab97af7184ec648f20930fab5c1d95ee825409c0d#rd",
"thumb_url": "http:\/\/mmbiz.qpic.cn\/mmbiz_png\/WiaVAicTdo7zP8HtgLHegmr32SLxcGv0wjQ1pic9oePDgk6XUhDz6xfhicmiaq4ITfibtfPOsulOMD7icIfSicibd8By3Tw\/0?wx_fmt=png",
"need_open_comment": 0,
"only_fans_can_comment": 0
}
],
"create_time": 1492696196,
"update_time": 1492696243
},
"update_time": 1492696243
}
],
"total_count": 20,
"item_count": 2
}
`
r := unmarshalNewsList(msg)
AssertEqual(t, r.TotalCount, 20, "Total count should be 20")
AssertEqual(t, r.ItemCount, 2, "Item count should be 2")
cnt := len(r.Items)
AssertEqual(t, cnt, 2, "")
//first item
item := r.Items[0]
AssertEqual(t, item.MediaID, "e2iNEiSxCX5TV1WbFd0TQP4_MKtjcY1q-4UPIZFrHhw", "Item[0] media ID wrong")
AssertEqual(t, item.UpdateTime, 1494488268, "Item[0] update time wrong")
AssertEqual(t, item.Content.CreateTime, 1494488254, "Item[0].Content Create time wrong")
AssertEqual(t, item.Content.UpdateTime, 1494488268, "Item[0].Content Update time wrong")
AssertEqual(t, item.Content.NewsItem[0].Title, "新人入会前几周推荐", "Item[0].Content.NewsItem[0].Title mismatch")
AssertEqual(t, item.Content.NewsItem[0].Author, "abc", "Item[0].Content.NewsItem[0].Author should be abc")
AssertEqual(t, item.Content.NewsItem[0].Digest, "excerpt", "Item[0].Content.NewsItem[0].Digest shold be excerpt")
AssertEqual(t, item.Content.NewsItem[0].Content, "
新人入会,前几周推荐做如下几件事情
加入校友会