@@ -22,46 +22,55 @@ func TestCopyOrig{{ .originName }}(t *testing.T) {
2222 assert.Equal(t, src, dest)
2323}
2424
25- func TestMarshalAndUnmarshalJSONOrig{{ .originName }}(t *testing.T) {
26- src := &{{ .originFullName }}{}
27- FillOrigTest{{ .originName }}(src)
28- stream := json.BorrowStream(nil)
29- defer json.ReturnStream(stream)
30- MarshalJSONOrig{{ .originName }}(src, stream)
31- require.NoError(t, stream.Error())
32-
33- // Append an unknown field at the start to ensure unknown fields are skipped
34- // and the unmarshal logic continues.
35- buf := stream.Buffer()
36- assert.EqualValues(t, '{', buf[0])
37- iter := json.BorrowIterator(append([]byte(`{"unknown": "string",`), buf[1:]...))
25+ func TestMarshalAndUnmarshalJSONOrig{{ .originName }}Unknown(t *testing.T) {
26+ iter := json.BorrowIterator([]byte(`{"unknown": "string"}`))
3827 defer json.ReturnIterator(iter)
3928 dest := &{{ .originFullName }}{}
4029 UnmarshalJSONOrig{{ .originName }}(dest, iter)
4130 require.NoError(t, iter.Error())
31+ assert.Equal(t, &{{ .originFullName }}{}, dest)
32+ }
4233
43- assert.Equal(t, src, dest)
34+ func TestMarshalAndUnmarshalJSONOrig{{ .originName }}(t *testing.T) {
35+ for name, src := range getEncodingTestValues{{ .originName }}() {
36+ t.Run(name, func(t *testing.T) {
37+ stream := json.BorrowStream(nil)
38+ defer json.ReturnStream(stream)
39+ MarshalJSONOrig{{ .originName }}(src, stream)
40+ require.NoError(t, stream.Error())
41+
42+ iter := json.BorrowIterator(stream.Buffer())
43+ defer json.ReturnIterator(iter)
44+ dest := &{{ .originFullName }}{}
45+ UnmarshalJSONOrig{{ .originName }}(dest, iter)
46+ require.NoError(t, iter.Error())
47+
48+ assert.Equal(t, src, dest)
49+ })
50+ }
4451}
4552
4653func TestMarshalAndUnmarshalProtoOrig{{ .originName }}(t *testing.T) {
47- src := & {{ .originFullName }}{}
48- FillOrigTest{{ .originName }}(src)
49- buf := make([]byte, SizeProtoOrig{{ .originName }}(src))
50- gotSize := MarshalProtoOrig{{ .originName }}(src, buf)
51- assert.Equal(t, len(buf), gotSize)
54+ for name, src := range getEncodingTestValues {{ .originName }}(){
55+ t.Run(name, func(t *testing.T) {
56+ buf := make([]byte, SizeProtoOrig{{ .originName }}(src))
57+ gotSize := MarshalProtoOrig{{ .originName }}(src, buf)
58+ assert.Equal(t, len(buf), gotSize)
5259
53- dest := &{{ .originFullName }}{}
54- require.NoError(t, UnmarshalProtoOrig{{ .originName }}(dest, buf))
55- assert.Equal(t, src, dest)
60+ dest := &{{ .originFullName }}{}
61+ require.NoError(t, UnmarshalProtoOrig{{ .originName }}(dest, buf))
62+ assert.Equal(t, src, dest)
63+ })
64+ }
5665}
5766
58- func TestMarshalAndUnmarshalProtoOrigEmpty {{ .originName }}(t *testing.T) {
59- src := & {{ .originFullName }}{}
60- buf := make([]byte, SizeProtoOrig {{ .originName }}(src))
61- gotSize := MarshalProtoOrig {{ .originName }}(src, buf)
62- assert.Equal(t, len(buf), gotSize)
63-
64- dest := &{{ .originFullName }}{}
65- require.NoError(t, UnmarshalProtoOrig {{ .originName }}(dest, buf))
66- assert.Equal(t, src, dest)
67+ func getEncodingTestValues {{ .originName }}() map[string]*{{ .originFullName }} {
68+ return map[string]* {{ .originFullName }}{
69+ "empty": & {{ .originFullName }}{},
70+ "fill_test": func() * {{ .originFullName }} {
71+ src := &{{ .originFullName }}{}
72+ FillOrigTest{{ .originName }}(src)
73+ return src
74+ }(), {{ range .fields -}}{{ .GenerateTestValue $.messageStruct }}{{ end }}
75+ }
6776}
0 commit comments