// Copyright (C) 2022-2023 Luke Shumaker // // SPDX-License-Identifier: GPL-2.0-or-later package lowmemjson import ( "strings" "testing" "github.com/stretchr/testify/assert" ) func TestEncoder(t *testing.T) { t.Parallel() var out strings.Builder enc := NewEncoder(&out) assert.NoError(t, enc.Encode(1)) assert.NoError(t, enc.Encode(1)) assert.NoError(t, enc.Encode(struct{}{})) assert.NoError(t, enc.Encode(nil)) assert.NoError(t, enc.Encode(1)) assert.Equal(t, "1\n1{}null1", out.String()) } func TestEncoderIndent(t *testing.T) { t.Parallel() var out strings.Builder enc := NewEncoder(NewReEncoder(&out, ReEncoderConfig{ AllowMultipleValues: true, Indent: "\t", })) assert.NoError(t, enc.Encode(1)) assert.NoError(t, enc.Encode(2)) assert.NoError(t, enc.Encode(struct{}{})) assert.NoError(t, enc.Encode([]int{9})) assert.NoError(t, enc.Encode(nil)) assert.NoError(t, enc.Encode(1)) assert.Equal(t, "1\n2\n{}\n[\n\t9\n]\nnull\n1", out.String()) } func TestEncode(t *testing.T) { t.Parallel() var out strings.Builder assert.NoError(t, NewEncoder(&out).Encode(1)) assert.NoError(t, NewEncoder(&out).Encode(1)) assert.NoError(t, NewEncoder(&out).Encode(struct{}{})) assert.NoError(t, NewEncoder(&out).Encode(nil)) assert.NoError(t, NewEncoder(&out).Encode(1)) assert.Equal(t, "11{}null1", out.String()) }