mirror of
https://github.com/gin-gonic/gin.git
synced 2025-05-22 20:49:23 +08:00
40 lines
984 B
Go
40 lines
984 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 (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestJSONBindingBindBody(t *testing.T) {
|
|
var s struct {
|
|
Foo string `json:"foo"`
|
|
}
|
|
err := jsonBinding{}.BindBody([]byte(`{"foo": "FOO"}`), &s)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "FOO", s.Foo)
|
|
}
|
|
|
|
func TestJSONBindingBindBodyMap(t *testing.T) {
|
|
s := make(map[string]string)
|
|
err := jsonBinding{}.BindBody([]byte(`{"foo": "FOO","hello":"world"}`), &s)
|
|
require.NoError(t, err)
|
|
assert.Len(t, s, 2)
|
|
assert.Equal(t, "FOO", s["foo"])
|
|
assert.Equal(t, "world", s["hello"])
|
|
}
|
|
|
|
func TestJSONBindingBindEmpty(t *testing.T) {
|
|
var s struct {
|
|
Foo string `binding:"required"`
|
|
}
|
|
err := jsonBinding{}.BindBody([]byte(""), &s)
|
|
require.True(t, strings.Contains(err.Error(), "empty body"))
|
|
}
|