1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package msg
- import (
- "bytes"
- "encoding/binary"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/fatedier/frp/utils/errors"
- )
- type TestStruct struct{}
- func TestPack(t *testing.T) {
- assert := assert.New(t)
- var (
- msg Message
- buffer []byte
- err error
- )
-
- msg = &TestStruct{}
- buffer, err = Pack(msg)
- assert.Error(err, errors.ErrMsgType.Error())
-
- msg = &Ping{}
- buffer, err = Pack(msg)
- assert.NoError(err)
- b := bytes.NewBuffer(nil)
- b.WriteByte(TypePing)
- binary.Write(b, binary.BigEndian, int64(2))
- b.WriteString("{}")
- assert.True(bytes.Equal(b.Bytes(), buffer))
- }
- func TestUnPack(t *testing.T) {
- assert := assert.New(t)
- var (
- msg Message
- err error
- )
-
- msg, err = UnPack('-', []byte("{}"))
- assert.Error(err)
-
- msg, err = UnPack(TypePong, []byte("{}"))
- assert.NoError(err)
- assert.Equal(getTypeFn(msg), getTypeFn((*Pong)(nil)))
- }
- func TestUnPackInto(t *testing.T) {
- assert := assert.New(t)
- var err error
-
- pongMsg := &Pong{}
- err = UnPackInto([]byte("{}"), pongMsg)
- assert.NoError(err)
-
- loginMsg := &Login{}
- err = UnPackInto([]byte(`{"version": 123}`), loginMsg)
- assert.Error(err)
- }
|