jsoniter_map_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package jsoniter
  2. import (
  3. "fmt"
  4. "reflect"
  5. "testing"
  6. "github.com/json-iterator/go/require"
  7. )
  8. func Test_read_map(t *testing.T) {
  9. iter := ParseString(`{"hello": "world"}`)
  10. m := map[string]string{"1": "2"}
  11. iter.ReadVal(&m)
  12. copy(iter.buf, []byte{0, 0, 0, 0, 0, 0})
  13. if !reflect.DeepEqual(map[string]string{"1": "2", "hello": "world"}, m) {
  14. fmt.Println(iter.Error)
  15. t.Fatal(m)
  16. }
  17. }
  18. func Test_read_map_of_interface(t *testing.T) {
  19. iter := ParseString(`{"hello": "world"}`)
  20. m := map[string]interface{}{"1": "2"}
  21. iter.ReadVal(&m)
  22. if !reflect.DeepEqual(map[string]interface{}{"1": "2", "hello": "world"}, m) {
  23. fmt.Println(iter.Error)
  24. t.Fatal(m)
  25. }
  26. }
  27. func Test_read_map_of_any(t *testing.T) {
  28. iter := ParseString(`{"hello": "world"}`)
  29. m := map[string]Any{"1": *MakeAny("2")}
  30. iter.ReadVal(&m)
  31. if !reflect.DeepEqual(map[string]Any{"1": *MakeAny("2"), "hello": *MakeAny("world")}, m) {
  32. fmt.Println(iter.Error)
  33. t.Fatal(m)
  34. }
  35. }
  36. func Test_write_val_map(t *testing.T) {
  37. should := require.New(t)
  38. val := map[string]string{"1": "2"}
  39. str, err := MarshalToString(val)
  40. should.Nil(err)
  41. should.Equal(`{"1":"2"}`, str)
  42. }