...

Source file src/github.com/launchdarkly/go-jsonstream/v3/jwriter/writer_init_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  import (
     7  	"testing"
     8  
     9  	ejwriter "github.com/mailru/easyjson/jwriter"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestNewWriterFromEasyJSONWriter(t *testing.T) {
    14  	expectedOutput := `[1,{"property":2},3]`
    15  	ejw := ejwriter.Writer{}
    16  
    17  	// Write the first part of a JSON array directly with the easyjson Writer
    18  	ejw.RawByte('[')
    19  	require.NoError(t, ejw.Error)
    20  	ejw.Int(1)
    21  	require.NoError(t, ejw.Error)
    22  	ejw.RawByte(',')
    23  	require.NoError(t, ejw.Error)
    24  
    25  	// Now pick up where we left off and use our Writer to write {"property":2}
    26  	writer := NewWriterFromEasyJSONWriter(&ejw)
    27  	obj := writer.Object()
    28  	require.NoError(t, writer.Error())
    29  	obj.Name("property").Int(2)
    30  	require.NoError(t, writer.Error())
    31  	obj.End()
    32  
    33  	// The easyjson Writer should be left in the proper state to write the rest of the stream
    34  	require.NoError(t, ejw.Error)
    35  	ejw.RawByte(',')
    36  	require.NoError(t, ejw.Error)
    37  	ejw.Int(3)
    38  	require.NoError(t, ejw.Error)
    39  	ejw.RawByte(']')
    40  	require.NoError(t, ejw.Error)
    41  
    42  	output, err := ejw.BuildBytes()
    43  	require.NoError(t, err)
    44  	require.Equal(t, expectedOutput, string(output))
    45  }
    46  

View as plain text