gin/codec/json/json_test.go
mehrdadbn9 ecdab3a3a2 refactor(context): use http.StatusContinue constant instead of magic number 100
Replace magic number `100` with `http.StatusContinue` constant for better code clarity and maintainability in `bodyAllowedForStatus` function.

Fixes #4489
2026-02-18 21:05:43 +03:30

54 lines
1.4 KiB
Go

// Copyright 2025 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 json
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestJSONMarshal(t *testing.T) {
data := map[string]string{"key": "value"}
result, err := API.Marshal(data)
require.NoError(t, err)
assert.JSONEq(t, `{"key":"value"}`, string(result))
}
func TestJSONUnmarshal(t *testing.T) {
var data map[string]string
err := API.Unmarshal([]byte(`{"key":"value"}`), &data)
require.NoError(t, err)
assert.Equal(t, "value", data["key"])
}
func TestJSONMarshalIndent(t *testing.T) {
data := map[string]string{"key": "value"}
result, err := API.MarshalIndent(data, "", " ")
require.NoError(t, err)
assert.Contains(t, string(result), `"key": "value"`)
}
func TestJSONNewEncoder(t *testing.T) {
var buf bytes.Buffer
encoder := API.NewEncoder(&buf)
require.NotNil(t, encoder)
err := encoder.Encode(map[string]string{"key": "value"})
require.NoError(t, err)
assert.JSONEq(t, `{"key":"value"}`, buf.String())
}
func TestJSONNewDecoder(t *testing.T) {
buf := bytes.NewBufferString(`{"key":"value"}`)
decoder := API.NewDecoder(buf)
require.NotNil(t, decoder)
var data map[string]string
err := decoder.Decode(&data)
require.NoError(t, err)
assert.Equal(t, "value", data["key"])
}