1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // +build !go1.1
- package simplejson
- import (
- "bytes"
- "github.com/bmizerany/assert"
- "strconv"
- "testing"
- )
- func TestNewFromReader(t *testing.T) {
- buf := bytes.NewBuffer([]byte(`{
- "test": {
- "array": [1, "2", 3],
- "arraywithsubs": [
- {"subkeyone": 1},
- {"subkeytwo": 2, "subkeythree": 3}
- ],
- "bignum": 8000000000
- }
- }`))
- js, err := NewFromReader(buf)
- //Standard Test Case
- assert.NotEqual(t, nil, js)
- assert.Equal(t, nil, err)
- arr, _ := js.Get("test").Get("array").Array()
- assert.NotEqual(t, nil, arr)
- for i, v := range arr {
- var iv int
- switch v.(type) {
- case float64:
- iv = int(v.(float64))
- case string:
- iv, _ = strconv.Atoi(v.(string))
- }
- assert.Equal(t, i+1, iv)
- }
- ma := js.Get("test").Get("array").MustArray()
- assert.Equal(t, ma, []interface{}{float64(1), "2", float64(3)})
- mm := js.Get("test").Get("arraywithsubs").GetIndex(0).MustMap()
- assert.Equal(t, mm, map[string]interface{}{"subkeyone": float64(1)})
- assert.Equal(t, js.Get("test").Get("bignum").MustInt64(), int64(8000000000))
- }
- func TestSimplejsonGo10(t *testing.T) {
- js, err := NewJson([]byte(`{
- "test": {
- "array": [1, "2", 3],
- "arraywithsubs": [
- {"subkeyone": 1},
- {"subkeytwo": 2, "subkeythree": 3}
- ],
- "bignum": 8000000000
- }
- }`))
- assert.NotEqual(t, nil, js)
- assert.Equal(t, nil, err)
- arr, _ := js.Get("test").Get("array").Array()
- assert.NotEqual(t, nil, arr)
- for i, v := range arr {
- var iv int
- switch v.(type) {
- case float64:
- iv = int(v.(float64))
- case string:
- iv, _ = strconv.Atoi(v.(string))
- }
- assert.Equal(t, i+1, iv)
- }
- ma := js.Get("test").Get("array").MustArray()
- assert.Equal(t, ma, []interface{}{float64(1), "2", float64(3)})
- mm := js.Get("test").Get("arraywithsubs").GetIndex(0).MustMap()
- assert.Equal(t, mm, map[string]interface{}{"subkeyone": float64(1)})
- assert.Equal(t, js.Get("test").Get("bignum").MustInt64(), int64(8000000000))
- }
|