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 := EncodeSo(payload) if err != nil { t.Error(err) return } payload2, err := DecodeSo(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")) } }