encode_null_test.go (1416B)
1 package gojay 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestEncodeNull(t *testing.T) { 11 var testCases = []struct { 12 name string 13 baseJSON string 14 expectedJSON string 15 }{ 16 { 17 name: "basic 1st element", 18 baseJSON: `[`, 19 expectedJSON: `[null,null`, 20 }, 21 { 22 name: "basic last element", 23 baseJSON: `["test"`, 24 expectedJSON: `["test",null,null`, 25 }, 26 } 27 28 for _, testCase := range testCases { 29 t.Run(testCase.name, func(t *testing.T) { 30 var b strings.Builder 31 var enc = NewEncoder(&b) 32 enc.writeString(testCase.baseJSON) 33 enc.Null() 34 enc.AddNull() 35 enc.Write() 36 assert.Equal(t, testCase.expectedJSON, b.String()) 37 }) 38 } 39 } 40 41 func TestEncodeNullKey(t *testing.T) { 42 var testCases = []struct { 43 name string 44 baseJSON string 45 expectedJSON string 46 }{ 47 { 48 name: "basic 1st element", 49 baseJSON: `{`, 50 expectedJSON: `{"foo":null,"bar":null`, 51 }, 52 { 53 name: "basic last element", 54 baseJSON: `{"test":"test"`, 55 expectedJSON: `{"test":"test","foo":null,"bar":null`, 56 }, 57 } 58 59 for _, testCase := range testCases { 60 t.Run(testCase.name, func(t *testing.T) { 61 var b strings.Builder 62 var enc = NewEncoder(&b) 63 enc.writeString(testCase.baseJSON) 64 enc.NullKey("foo") 65 enc.AddNullKey("bar") 66 enc.Write() 67 assert.Equal(t, testCase.expectedJSON, b.String()) 68 }) 69 } 70 }