...
1 package tests
2
3 import (
4 "reflect"
5 "testing"
6
7 "github.com/mailru/easyjson"
8 )
9
10 func TestMembersEscaping(t *testing.T) {
11 cases := []struct {
12 data string
13 esc MembersEscaped
14 unesc MembersUnescaped
15 }{
16 {
17 data: `{"漢語": "中国"}`,
18 esc: MembersEscaped{A: "中国"},
19 unesc: MembersUnescaped{A: "中国"},
20 },
21 {
22 data: `{"漢語": "\u4e2D\u56fD"}`,
23 esc: MembersEscaped{A: "中国"},
24 unesc: MembersUnescaped{A: "中国"},
25 },
26 {
27 data: `{"\u6f22\u8a9E": "中国"}`,
28 esc: MembersEscaped{A: "中国"},
29 unesc: MembersUnescaped{A: ""},
30 },
31 {
32 data: `{"\u6f22\u8a9E": "\u4e2D\u56fD"}`,
33 esc: MembersEscaped{A: "中国"},
34 unesc: MembersUnescaped{A: ""},
35 },
36 }
37
38 for i, c := range cases {
39 var esc MembersEscaped
40 err := easyjson.Unmarshal([]byte(c.data), &esc)
41 if err != nil {
42 t.Error(err)
43 }
44 if !reflect.DeepEqual(esc, c.esc) {
45 t.Errorf("[%d] TestMembersEscaping(): got=%+v, exp=%+v", i, esc, c.esc)
46 }
47
48 var unesc MembersUnescaped
49 err = easyjson.Unmarshal([]byte(c.data), &unesc)
50 if err != nil {
51 t.Error(err)
52 }
53 if !reflect.DeepEqual(unesc, c.unesc) {
54 t.Errorf("[%d] TestMembersEscaping(): no-unescaping case: got=%+v, exp=%+v", i, esc, c.esc)
55 }
56 }
57 }
58
View as plain text