...

Source file src/github.com/launchdarkly/go-jsonstream/v3/jwriter/writer_streaming_easyjson_test.go

Documentation: github.com/launchdarkly/go-jsonstream/v3/jwriter

     1  //go:build launchdarkly_easyjson
     2  // +build launchdarkly_easyjson
     3  
     4  package jwriter
     5  
     6  // The expectations in this test are slightly different from the non-easyjson version in
     7  // writer_streaming_default_test.go, because in the easyjson implementation we don't have quite as
     8  // much control over when the buffer gets flushed, so it will only be flushed at the end of a write.
     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