Sfoglia il codice sorgente

assertEqual looks good now

master
Patrick Peng Sun 8 anni fa
parent
commit
a2c6e8a86c
2 ha cambiato i file con 140 aggiunte e 7 eliminazioni
  1. +45
    -2
      inMsg.go
  2. +95
    -5
      inMsg_test.go

+ 45
- 2
inMsg.go Vedi File

@@ -41,14 +41,14 @@ type VideoMsg struct {
}

//short video
type ShortVideo struct {
type ShortVideoMsg struct {
MeidaId string
ThumbMediaId string
MsgId int64
}

//Location Info
type Location struct {
type LocationMsg struct {
Location_X float64
Location_Y float64
Scale int
@@ -69,3 +69,46 @@ func ReadCommonHeader(s string) CommonHeader {
xml.Unmarshal([]byte(s), &r)
return r
}

//ReadTextMsg extract text message
func ReadTextMsg(s string) TextMsg {
var r = TextMsg{}
xml.Unmarshal([]byte(s), &r)
return r
}

//ReadPicMsg extract text message
func ReadPicMsg(s string) PicMsg {
var r = PicMsg{}
return r
}

//ReadVoiceMsg extract text message
func ReadVoiceMsg(s string) VoiceMsg {
var r = VoiceMsg{}
return r
}

//ReadVideoMsg extract text message
func ReadVideoMsg(s string) VideoMsg {
var r = VideoMsg{}
return r
}

//ReadShortVideoMsg extract text message
func ReadShortVideoMsg(s string) ShortVideoMsg {
var r = ShortVideoMsg{}
return r
}

//ReadLocationMsg extract text message
func ReadLocationMsg(s string) LocationMsg {
var r = LocationMsg{}
return r
}

//ReadLinkMsg extract text message
func ReadLinkMsg(s string) LinkMsg {
var r = LinkMsg{}
return r
}

+ 95
- 5
inMsg_test.go Vedi File

@@ -18,12 +18,8 @@ func TestReadCommonHeader(t *testing.T) {
h := ReadCommonHeader(msg)
assertEqual(t, h.ToUserName, "gh_f09231355c68", "ToUserName failed")
assertEqual(t, h.FromUserName, "oUN420bxqFqlx0ZQHciUOesZO3PE", "FromUserName failed")
assertEqual(t, h.CreateTime, int64(1492972518), "CreateTime Failed")
assertEqual(t, h.MsgType, "event", "MsgType failed")
//for weird reasons assertEqual does not work for integer
if h.CreateTime != 1492972518 {
errmsg := fmt.Sprintf("CreateTime should be 1492972518, not %d", h.CreateTime)
t.Error(errmsg)
}

}

@@ -37,3 +33,97 @@ func assertEqual(t *testing.T, a interface{}, b interface{}, message string) {
message = fmt.Sprintf("%v != %v", a, b)
t.Fatal(message)
}

func TestTxtMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>`
h := ReadCommonHeader(msg)
m := ReadTextMsg(msg)
assertEqual(t, m.Content, "this is a test", "Content is not right")
assertEqual(t, h.MsgType, "text", "")
assertEqual(t, m.MsgId, int64(1234567890123456), "")
}

/*
func TestingPicMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<PicUrl><![CDATA[this is a url]]></PicUrl>
<MediaId><![CDATA[media_id]]></MediaId>
<MsgId>1234567890123456</MsgId>
</xml>`
}

func TestingVoiceMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<Recognition><![CDATA[腾讯微信团队]]></Recognition>
<MsgId>1234567890123456</MsgId>
</xml>`
}

func TestingVideoMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[video]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
<MsgId>1234567890123456</MsgId>
</xml>`
}

func TestingShortVideoMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[shortvideo]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
<MsgId>1234567890123456</MsgId>
</xml>`
}

func TestingLocationMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[location]]></MsgType>
<Location_X>23.134521</Location_X>
<Location_Y>113.358803</Location_Y>
<Scale>20</Scale>
<Label><![CDATA[位置信息]]></Label>
<MsgId>1234567890123456</MsgId>
</xml>`
}

func TestingLinkMsg(t *testing.T) {
msg := `<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[link]]></MsgType>
<Title><![CDATA[公众平台官网链接]]></Title>
<Description><![CDATA[公众平台官网链接]]></Description>
<Url><![CDATA[url]]></Url>
<MsgId>1234567890123456</MsgId>
</xml>`
}
*/

Loading…
Annulla
Salva