123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package jsonx
- import (
- "strings"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestMarshal(t *testing.T) {
- var v = struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }{
- Name: "John",
- Age: 30,
- }
- bs, err := Marshal(v)
- assert.Nil(t, err)
- assert.Equal(t, `{"name":"John","age":30}`, string(bs))
- }
- func TestUnmarshal(t *testing.T) {
- const s = `{"name":"John","age":30}`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := Unmarshal([]byte(s), &v)
- assert.Nil(t, err)
- assert.Equal(t, "John", v.Name)
- assert.Equal(t, 30, v.Age)
- }
- func TestUnmarshalError(t *testing.T) {
- const s = `{"name":"John","age":30`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := Unmarshal([]byte(s), &v)
- assert.NotNil(t, err)
- }
- func TestUnmarshalFromString(t *testing.T) {
- const s = `{"name":"John","age":30}`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := UnmarshalFromString(s, &v)
- assert.Nil(t, err)
- assert.Equal(t, "John", v.Name)
- assert.Equal(t, 30, v.Age)
- }
- func TestUnmarshalFromStringError(t *testing.T) {
- const s = `{"name":"John","age":30`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := UnmarshalFromString(s, &v)
- assert.NotNil(t, err)
- }
- func TestUnmarshalFromRead(t *testing.T) {
- const s = `{"name":"John","age":30}`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := UnmarshalFromReader(strings.NewReader(s), &v)
- assert.Nil(t, err)
- assert.Equal(t, "John", v.Name)
- assert.Equal(t, 30, v.Age)
- }
- func TestUnmarshalFromReaderError(t *testing.T) {
- const s = `{"name":"John","age":30`
- var v struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }
- err := UnmarshalFromReader(strings.NewReader(s), &v)
- assert.NotNil(t, err)
- }
- func TestMarshalToString(t *testing.T) {
- var v = struct {
- Name string `json:"name"`
- Age int `json:"age"`
- }{
- Name: "John",
- Age: 30,
- }
- toString, err := MarshalToString(v)
- assert.Nil(t, err)
- assert.Equal(t, `{"name":"John","age":30}`, toString)
- }
|