32 lines
811 B
Go
32 lines
811 B
Go
package protocol
|
|
|
|
import "testing"
|
|
|
|
func TestAuthRequestJSONRoundTrip(t *testing.T) {
|
|
raw := EncodeAuthRequest(AuthRequest{Token: "abc", DeviceID: 7, AppVersion: "1.0", Language: "zh-CN"})
|
|
got, err := DecodeAuthRequest(raw)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.Token != "abc" || got.DeviceID != 7 || got.Language != "zh-CN" {
|
|
t.Fatalf("%+v", got)
|
|
}
|
|
if _, err := DecodeAuthRequest([]byte(`{"device_id":1}`)); err == nil {
|
|
t.Fatal("empty token")
|
|
}
|
|
if _, err := DecodeAuthRequest([]byte("not-json")); err == nil {
|
|
t.Fatal("garbage")
|
|
}
|
|
}
|
|
|
|
func TestEncodeOKStampsRequestID(t *testing.T) {
|
|
raw := EncodeOK("rid-tcp", map[string]int{"n": 1})
|
|
env, err := DecodeEnvelope(raw)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if env.Code != "0" || env.RequestID != "rid-tcp" {
|
|
t.Fatalf("%+v %s", env, raw)
|
|
}
|
|
}
|