49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package processor
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/fox/fox/ipb"
|
|
"github.com/golang/protobuf/proto"
|
|
"testing"
|
|
)
|
|
|
|
func onChat(userId int64, req *ipb.InternalMsg) {
|
|
_ = userId
|
|
fmt.Println("onChat.", string(req.Msg))
|
|
}
|
|
|
|
func TestProcessor(t *testing.T) {
|
|
p := NewProcessor()
|
|
p.RegisterMessages(RegisterMetas{
|
|
ipb.MsgId_Internal: {ipb.InternalMsg{}, onChat},
|
|
})
|
|
|
|
tmp := &ipb.InternalMsg{UserId: 1, ConnId: 1, MsgId: int32(ipb.MsgId_Internal), Msg: []byte("hello world")}
|
|
data, _ := proto.Marshal(tmp)
|
|
|
|
req, _ := p.Unmarshal(int32(ipb.MsgId_Internal), data)
|
|
if err := p.Dispatch(int32(ipb.MsgId_Internal), int64(1), req); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|
|
|
|
func registerMessage(p *Processor, cmd int32, msg any, cb any) {
|
|
p.RegisterMessage(cmd, msg, cb)
|
|
}
|
|
|
|
func TestProcessorAny(t *testing.T) {
|
|
p := NewProcessor()
|
|
p.RegisterMessages(RegisterMetas{
|
|
ipb.MsgId_Internal: {ipb.InternalMsg{}, onChat},
|
|
})
|
|
registerMessage(p, int32(ipb.MsgId_Internal), ipb.InternalMsg{}, onChat)
|
|
|
|
tmp := &ipb.InternalMsg{UserId: 1, ConnId: 1, MsgId: int32(ipb.MsgId_Internal), Msg: []byte("hello world")}
|
|
data, _ := proto.Marshal(tmp)
|
|
|
|
req, _ := p.Unmarshal(int32(ipb.MsgId_Internal), data)
|
|
if err := p.Dispatch(int32(ipb.MsgId_Internal), int64(1), req); err != nil {
|
|
t.Error(err)
|
|
}
|
|
}
|