| package test |
| |
| func init() { |
| var pEFace = func(val interface{}) *interface{} { |
| return &val |
| } |
| var pInt = func(val int) *int { |
| return &val |
| } |
| unmarshalCases = append(unmarshalCases, unmarshalCase{ |
| ptr: (**interface{})(nil), |
| input: `"hello"`, |
| }, unmarshalCase{ |
| ptr: (**interface{})(nil), |
| input: `1e1`, |
| }, unmarshalCase{ |
| ptr: (**interface{})(nil), |
| input: `1.0e1`, |
| }, unmarshalCase{ |
| ptr: (*[]interface{})(nil), |
| input: `[1.0e1]`, |
| }, unmarshalCase{ |
| ptr: (*struct { |
| Field interface{} |
| })(nil), |
| input: `{"field":"hello"}`, |
| }, unmarshalCase{ |
| obj: func() interface{} { |
| type TestData struct { |
| Name string `json:"name"` |
| } |
| o := &TestData{} |
| return &o |
| }, |
| input: `{"name":"value"}`, |
| }, unmarshalCase{ |
| obj: func() interface{} { |
| b := true |
| return &struct { |
| Field interface{} `json:"field"` |
| }{&b} |
| }, |
| input: `{"field": null}`, |
| }, unmarshalCase{ |
| obj: func() interface{} { |
| var pb *bool |
| return &struct { |
| Field interface{} `json:"field"` |
| }{&pb} |
| }, |
| input: `{"field": null}`, |
| }, unmarshalCase{ |
| obj: func() interface{} { |
| b := true |
| pb := &b |
| return &struct { |
| Field interface{} `json:"field"` |
| }{&pb} |
| }, |
| input: `{"field": null}`, |
| }) |
| marshalCases = append(marshalCases, |
| pEFace("hello"), |
| struct { |
| Field interface{} |
| }{"hello"}, |
| struct { |
| Field interface{} |
| }{struct { |
| field chan int |
| }{}}, |
| struct { |
| Field interface{} |
| }{struct { |
| Field *int |
| }{pInt(100)}}, |
| ) |
| } |