...

Source file src/github.com/json-iterator/go/value_tests/eface_test.go

Documentation: github.com/json-iterator/go/value_tests

     1  package test
     2  
     3  func init() {
     4  	var pEFace = func(val interface{}) *interface{} {
     5  		return &val
     6  	}
     7  	var pInt = func(val int) *int {
     8  		return &val
     9  	}
    10  	unmarshalCases = append(unmarshalCases, unmarshalCase{
    11  		ptr:   (**interface{})(nil),
    12  		input: `"hello"`,
    13  	}, unmarshalCase{
    14  		ptr:   (**interface{})(nil),
    15  		input: `1e1`,
    16  	}, unmarshalCase{
    17  		ptr:   (**interface{})(nil),
    18  		input: `1.0e1`,
    19  	}, unmarshalCase{
    20  		ptr:   (*[]interface{})(nil),
    21  		input: `[1.0e1]`,
    22  	}, unmarshalCase{
    23  		ptr: (*struct {
    24  			Field interface{}
    25  		})(nil),
    26  		input: `{"field":"hello"}`,
    27  	}, unmarshalCase{
    28  		obj: func() interface{} {
    29  			type TestData struct {
    30  				Name string `json:"name"`
    31  			}
    32  			o := &TestData{}
    33  			return &o
    34  		},
    35  		input: `{"name":"value"}`,
    36  	}, unmarshalCase{
    37  		obj: func() interface{} {
    38  			b := true
    39  			return &struct {
    40  				Field interface{} `json:"field"`
    41  			}{&b}
    42  		},
    43  		input: `{"field": null}`,
    44  	}, unmarshalCase{
    45  		obj: func() interface{} {
    46  			var pb *bool
    47  			return &struct {
    48  				Field interface{} `json:"field"`
    49  			}{&pb}
    50  		},
    51  		input: `{"field": null}`,
    52  	}, unmarshalCase{
    53  		obj: func() interface{} {
    54  			b := true
    55  			pb := &b
    56  			return &struct {
    57  				Field interface{} `json:"field"`
    58  			}{&pb}
    59  		},
    60  		input: `{"field": null}`,
    61  	})
    62  	marshalCases = append(marshalCases,
    63  		pEFace("hello"),
    64  		struct {
    65  			Field interface{}
    66  		}{"hello"},
    67  		struct {
    68  			Field interface{}
    69  		}{struct {
    70  			field chan int
    71  		}{}},
    72  		struct {
    73  			Field interface{}
    74  		}{struct {
    75  			Field *int
    76  		}{pInt(100)}},
    77  	)
    78  }
    79  

View as plain text