...
1 package jreader
2
3 import (
4 "testing"
5
6 "github.com/launchdarkly/go-jsonstream/v3/internal/commontest"
7
8 "github.com/stretchr/testify/require"
9 )
10
11 func TestUnmarshalJSONWithReader(t *testing.T) {
12 var val ExampleStructWrapper
13 err := UnmarshalJSONWithReader(commontest.ExampleStructData, &val)
14 require.NoError(t, err)
15 require.Equal(t, ExampleStructWrapper(commontest.ExampleStructValue), val)
16 }
17
18 func TestUnmarshalJSONWithReaderReturnsErrorForNonWhitespaceDatasAfterEnd(t *testing.T) {
19 var val ExampleStructWrapper
20 badJSON := string(commontest.ExampleStructData) + "xxx"
21 err := UnmarshalJSONWithReader([]byte(badJSON), &val)
22 require.Error(t, err)
23 require.Contains(t, err.Error(), "unexpected data after end")
24 }
25
26 func TestUnmarshalJSONWithReaderDisregardsWhitespaceAfterEnd(t *testing.T) {
27 var val ExampleStructWrapper
28 okJSON := string(commontest.ExampleStructData) + " \t\n\r "
29 err := UnmarshalJSONWithReader([]byte(okJSON), &val)
30 require.NoError(t, err)
31 require.Equal(t, ExampleStructWrapper(commontest.ExampleStructValue), val)
32 }
33
View as plain text