1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // Copyright 2016 fatedier, fatedier@gmail.com
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- 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
- )
- // error type
- msg = &TestStruct{}
- buffer, err = Pack(msg)
- assert.Error(err, errors.ErrMsgType.Error())
- // correct
- 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
- )
- // error message type
- msg, err = UnPack('-', []byte("{}"))
- assert.Error(err)
- // correct
- 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
- // correct type
- pongMsg := &Pong{}
- err = UnPackInto([]byte("{}"), pongMsg)
- assert.NoError(err)
- // wrong type
- loginMsg := &Login{}
- err = UnPackInto([]byte(`{"version": 123}`), loginMsg)
- assert.Error(err)
- }
|