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.
63 lines
1.4 KiB
63 lines
1.4 KiB
package msgpack |
|
|
|
import ( |
|
"reflect" |
|
"testing" |
|
) |
|
|
|
type loginRequest struct { |
|
UserName string |
|
Password string |
|
} |
|
|
|
type testModel struct { |
|
ID int32 |
|
Name string |
|
} |
|
|
|
func TestName(t *testing.T) { |
|
c := new(codec) |
|
if !reflect.DeepEqual("msgpack", c.Name()) { |
|
t.Errorf("Name() should be msgpack, but got %s", c.Name()) |
|
} |
|
} |
|
|
|
func TestCodec(t *testing.T) { |
|
c := new(codec) |
|
t2 := testModel{ID: 1, Name: "name"} |
|
m, err := c.Marshal(&t2) |
|
if err != nil { |
|
t.Errorf("Marshal() should be nil, but got %s", err) |
|
} |
|
var t3 testModel |
|
err = c.Unmarshal(m, &t3) |
|
if err != nil { |
|
t.Errorf("Unmarshal() should be nil, but got %s", err) |
|
} |
|
if !reflect.DeepEqual(t2.ID, t3.ID) { |
|
t.Errorf("ID should be %d, but got %d", t2.ID, t3.ID) |
|
} |
|
if !reflect.DeepEqual(t3.Name, t2.Name) { |
|
t.Errorf("Name should be %s, but got %s", t2.Name, t3.Name) |
|
} |
|
|
|
request := loginRequest{ |
|
UserName: "username", |
|
Password: "password", |
|
} |
|
m, err = c.Marshal(&request) |
|
if err != nil { |
|
t.Errorf("Marshal() should be nil, but got %s", err) |
|
} |
|
var req loginRequest |
|
err = c.Unmarshal(m, &req) |
|
if err != nil { |
|
t.Errorf("Unmarshal() should be nil, but got %s", err) |
|
} |
|
if !reflect.DeepEqual(req.Password, request.Password) { |
|
t.Errorf("ID should be %s, but got %s", req.Password, request.Password) |
|
} |
|
if !reflect.DeepEqual(req.UserName, request.UserName) { |
|
t.Errorf("Name should be %s, but got %s", req.UserName, request.UserName) |
|
} |
|
}
|
|
|