33 lines
770 B
Go
33 lines
770 B
Go
|
// Copyright 2019 Gin Core Team. All rights reserved.
|
||
|
// Use of this source code is governed by a MIT style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package binding
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
"github.com/ugorji/go/codec"
|
||
|
)
|
||
|
|
||
|
func TestMsgpackBindingBindBody(t *testing.T) {
|
||
|
type teststruct struct {
|
||
|
Foo string `msgpack:"foo"`
|
||
|
}
|
||
|
var s teststruct
|
||
|
err := msgpackBinding{}.BindBody(msgpackBody(t, teststruct{"FOO"}), &s)
|
||
|
require.NoError(t, err)
|
||
|
assert.Equal(t, "FOO", s.Foo)
|
||
|
}
|
||
|
|
||
|
func msgpackBody(t *testing.T, obj interface{}) []byte {
|
||
|
var bs bytes.Buffer
|
||
|
h := &codec.MsgpackHandle{}
|
||
|
err := codec.NewEncoder(&bs, h).Encode(obj)
|
||
|
require.NoError(t, err)
|
||
|
return bs.Bytes()
|
||
|
}
|