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