...

Source file src/github.com/mailru/easyjson/tests/members_escaping_test.go

Documentation: github.com/mailru/easyjson/tests

     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