// Copyright (C) 2022 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) { 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) { var out strings.Builder enc := NewEncoder(&ReEncoder{ Out: &out, AllowMultipleValues: true, Indent: "\t", }) assert.NoError(t, enc.Encode(1)) assert.NoError(t, enc.Encode(1)) 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\n1\n{}\n[\n\t9\n]\nnull\n1", out.String()) } func TestEncode(t *testing.T) { var out strings.Builder assert.NoError(t, Encode(&out, 1)) assert.NoError(t, Encode(&out, 1)) assert.NoError(t, Encode(&out, struct{}{})) assert.NoError(t, Encode(&out, nil)) assert.NoError(t, Encode(&out, 1)) assert.Equal(t, "11{}null1", out.String()) }