github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/bitly/go-simplejson/simplejson_go10_test.go (about) 1 // +build !go1.1 2 3 package simplejson 4 5 import ( 6 "bytes" 7 "github.com/insionng/yougam/libraries/bmizerany/assert" 8 "strconv" 9 "testing" 10 ) 11 12 func TestNewFromReader(t *testing.T) { 13 buf := bytes.NewBuffer([]byte(`{ 14 "test": { 15 "array": [1, "2", 3], 16 "arraywithsubs": [ 17 {"subkeyone": 1}, 18 {"subkeytwo": 2, "subkeythree": 3} 19 ], 20 "bignum": 8000000000 21 } 22 }`)) 23 js, err := NewFromReader(buf) 24 25 //Standard Test Case 26 assert.NotEqual(t, nil, js) 27 assert.Equal(t, nil, err) 28 29 arr, _ := js.Get("test").Get("array").Array() 30 assert.NotEqual(t, nil, arr) 31 for i, v := range arr { 32 var iv int 33 switch v.(type) { 34 case float64: 35 iv = int(v.(float64)) 36 case string: 37 iv, _ = strconv.Atoi(v.(string)) 38 } 39 assert.Equal(t, i+1, iv) 40 } 41 42 ma := js.Get("test").Get("array").MustArray() 43 assert.Equal(t, ma, []interface{}{float64(1), "2", float64(3)}) 44 45 mm := js.Get("test").Get("arraywithsubs").GetIndex(0).MustMap() 46 assert.Equal(t, mm, map[string]interface{}{"subkeyone": float64(1)}) 47 48 assert.Equal(t, js.Get("test").Get("bignum").MustInt64(), int64(8000000000)) 49 } 50 51 func TestSimplejsonGo10(t *testing.T) { 52 js, err := NewJson([]byte(`{ 53 "test": { 54 "array": [1, "2", 3], 55 "arraywithsubs": [ 56 {"subkeyone": 1}, 57 {"subkeytwo": 2, "subkeythree": 3} 58 ], 59 "bignum": 8000000000 60 } 61 }`)) 62 63 assert.NotEqual(t, nil, js) 64 assert.Equal(t, nil, err) 65 66 arr, _ := js.Get("test").Get("array").Array() 67 assert.NotEqual(t, nil, arr) 68 for i, v := range arr { 69 var iv int 70 switch v.(type) { 71 case float64: 72 iv = int(v.(float64)) 73 case string: 74 iv, _ = strconv.Atoi(v.(string)) 75 } 76 assert.Equal(t, i+1, iv) 77 } 78 79 ma := js.Get("test").Get("array").MustArray() 80 assert.Equal(t, ma, []interface{}{float64(1), "2", float64(3)}) 81 82 mm := js.Get("test").Get("arraywithsubs").GetIndex(0).MustMap() 83 assert.Equal(t, mm, map[string]interface{}{"subkeyone": float64(1)}) 84 85 assert.Equal(t, js.Get("test").Get("bignum").MustInt64(), int64(8000000000)) 86 }