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.
 
 

50 lines
1.1 KiB

package protocol
import (
"errors"
"testing"
)
func TestProtocolCodec(t *testing.T) {
header := Header{
Magic: Magic,
Type: 1,
Status: 20,
UrlType: 1,
SerializeType: 2,
SeqId: 10086,
Svc: "Postal",
Target: "Deliver",
}
payload := &Payload{
Header: header,
Body: []byte(`{"receiver":"10001啊"}`),
}
bytes, err := Encode(payload)
if err != nil {
t.Error(err)
return
}
payload2, err := Decode(bytes)
if err != nil {
t.Error(err)
return
}
header2 := payload2.Header
body2Len := len(payload2.Body)
ok := header2.Magic == header.Magic &&
header2.Status == header.Status &&
header2.UrlType == header.UrlType &&
header2.SerializeType == header.SerializeType &&
header2.SeqId == header.SeqId &&
header2.SvcNo == header.SvcNo &&
header2.TargetNo == header.TargetNo &&
header2.Svc == header.Svc &&
header2.Target == header.Target &&
body2Len == len(payload.Body) &&
payload2.Body[0] == payload.Body[0] &&
payload2.Body[body2Len-1] == payload.Body[body2Len-1]
if !ok {
t.Error(errors.New("decode not equals"))
}
}