github.com/gogf/gf@v1.16.9/container/gvar/gvar_z_unit_json_test.go (about)

     1  // Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the MIT License.
     4  // If a copy of the MIT was not distributed with this file,
     5  // You can obtain one at https://github.com/gogf/gf.
     6  
     7  package gvar_test
     8  
     9  import (
    10  	"github.com/gogf/gf/container/gvar"
    11  	"github.com/gogf/gf/internal/json"
    12  	"github.com/gogf/gf/test/gtest"
    13  	"math"
    14  	"testing"
    15  )
    16  
    17  func TestVar_Json(t *testing.T) {
    18  	// Marshal
    19  	gtest.C(t, func(t *gtest.T) {
    20  		s := "i love gf"
    21  		v := gvar.New(s)
    22  		b1, err1 := json.Marshal(v)
    23  		b2, err2 := json.Marshal(s)
    24  		t.Assert(err1, err2)
    25  		t.Assert(b1, b2)
    26  	})
    27  
    28  	gtest.C(t, func(t *gtest.T) {
    29  		s := int64(math.MaxInt64)
    30  		v := gvar.New(s)
    31  		b1, err1 := json.Marshal(v)
    32  		b2, err2 := json.Marshal(s)
    33  		t.Assert(err1, err2)
    34  		t.Assert(b1, b2)
    35  	})
    36  
    37  	// Unmarshal
    38  	gtest.C(t, func(t *gtest.T) {
    39  		s := "i love gf"
    40  		v := gvar.New(nil)
    41  		b, err := json.Marshal(s)
    42  		t.Assert(err, nil)
    43  
    44  		err = json.UnmarshalUseNumber(b, v)
    45  		t.Assert(err, nil)
    46  		t.Assert(v.String(), s)
    47  	})
    48  
    49  	gtest.C(t, func(t *gtest.T) {
    50  		var v gvar.Var
    51  		s := "i love gf"
    52  		b, err := json.Marshal(s)
    53  		t.Assert(err, nil)
    54  
    55  		err = json.UnmarshalUseNumber(b, &v)
    56  		t.Assert(err, nil)
    57  		t.Assert(v.String(), s)
    58  	})
    59  }