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
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 := 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")) |
|
} |
|
}
|
|
|