github.com/RevenueMonster/sqlike@v1.0.6/jsonb/string_test.go (about)

     1  package jsonb
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestReadEscapeString(t *testing.T) {
    11  
    12  }
    13  
    14  func TestReadRawString(t *testing.T) {
    15  	t.Run("ReadRawString with invalid null", func(t *testing.T) {
    16  		r := NewReader([]byte(`nan`))
    17  		str, err := r.ReadRawString()
    18  		require.Error(t, err)
    19  		require.Empty(t, str)
    20  	})
    21  
    22  	t.Run("ReadRawString with null", func(t *testing.T) {
    23  		r := NewReader([]byte(`null`))
    24  		str, err := r.ReadRawString()
    25  		require.NoError(t, err)
    26  		require.Equal(t, `null`, str)
    27  	})
    28  
    29  	t.Run("ReadRawString", func(t *testing.T) {
    30  		r := NewReader([]byte(`"Hello World !"`))
    31  		str, err := r.ReadRawString()
    32  		require.NoError(t, err)
    33  		require.Equal(t, `Hello World !`, str)
    34  	})
    35  
    36  	t.Run("ReadRawString with unquoted string", func(t *testing.T) {
    37  		r := NewReader([]byte(`"12344`))
    38  		str, err := r.ReadRawString()
    39  		require.Error(t, err)
    40  		require.Empty(t, str)
    41  	})
    42  }
    43  
    44  func TestReadString(t *testing.T) {
    45  
    46  	t.Run("escapeString", func(t *testing.T) {
    47  		str := `test		\"asdasjkd
    48  	lkasd128378127#$%^&*()_)(*&^%$#@#~!@#$%`
    49  		blr := NewWriter()
    50  		escapeString(blr, str)
    51  		assert.Equal(t, `test\t\t\\\"asdasjkd\n\tlkasd128378127#$%^&*()_)(*&^%$#@#~!@#$%`, blr.String(), "unexpected result")
    52  	})
    53  	t.Run("ReadString with escape string", func(t *testing.T) {
    54  		r := NewReader([]byte(`"1234\"4abc\"de\nfg"`))
    55  		str, err := r.ReadString()
    56  		require.NoError(t, err)
    57  		require.Equal(t, "1234\"4abc\"de\nfg", str)
    58  	})
    59  
    60  	t.Run("ReadString with unquoted string", func(t *testing.T) {
    61  		r := NewReader([]byte(`"12344`))
    62  		str, err := r.ReadString()
    63  		require.Error(t, err)
    64  		require.Empty(t, str)
    65  	})
    66  
    67  	t.Run("ReadString with null", func(t *testing.T) {
    68  		r := NewReader([]byte(`null`))
    69  		str, err := r.ReadString()
    70  		require.NoError(t, err)
    71  		require.Empty(t, str)
    72  	})
    73  
    74  	t.Run("ReadString with errors", func(t *testing.T) {
    75  		r := NewReader([]byte(`ss""`))
    76  		str, err := r.ReadString()
    77  		require.Error(t, err)
    78  		require.Empty(t, str)
    79  	})
    80  }