...
1
2
3
4 package jwriter
5
6 import (
7 "bytes"
8 "testing"
9
10 "github.com/stretchr/testify/require"
11 )
12
13 func TestStreamingWriterWritesToTargetInChunks(t *testing.T) {
14 buf := bytes.NewBuffer(nil)
15 w := NewStreamingWriter(buf, 10)
16
17 expected := ""
18
19 arr := w.Array()
20 require.Equal(t, expected, buf.String())
21
22 arr.Bool(true)
23 require.Equal(t, expected, buf.String())
24
25 arr.String("abc")
26 expected += `[true,"abc`
27 require.Equal(t, expected, buf.String())
28
29 arr.Int(33)
30 require.Equal(t, expected, buf.String())
31
32 arr.Null()
33 require.Equal(t, expected, buf.String())
34
35 arr.Float64(2.5)
36 expected += `",33,null,`
37 require.Equal(t, expected, buf.String())
38
39 arr.End()
40 require.Equal(t, expected, buf.String())
41
42 require.NoError(t, w.Flush())
43 expected += `2.5]`
44 require.Equal(t, expected, buf.String())
45 }
46
View as plain text