github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/arm/parser/armjson/reader_test.go (about)

     1  package armjson
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  var input = `abcdefghijklmnopqrstuvwxyz`
    12  
    13  func Test_Peeker(t *testing.T) {
    14  	peeker := NewPeekReader(strings.NewReader(input))
    15  
    16  	var b rune
    17  	var err error
    18  
    19  	for i := 0; i < 30; i++ {
    20  		b, err = peeker.Peek()
    21  		require.NoError(t, err)
    22  		assert.Equal(t, ('a'), b)
    23  	}
    24  
    25  	b, err = peeker.Next()
    26  	require.NoError(t, err)
    27  	assert.Equal(t, ('a'), b)
    28  
    29  	b, err = peeker.Next()
    30  	require.NoError(t, err)
    31  	assert.Equal(t, ('b'), b)
    32  
    33  	b, err = peeker.Peek()
    34  	require.NoError(t, err)
    35  	assert.Equal(t, ('c'), b)
    36  
    37  	for i := 0; i < 5; i++ {
    38  		b, err = peeker.Next()
    39  		require.NoError(t, err)
    40  		assert.Equal(t, []rune(input)[2+i], b)
    41  	}
    42  
    43  	b, err = peeker.Peek()
    44  	require.NoError(t, err)
    45  	assert.Equal(t, ('h'), b)
    46  
    47  	b, err = peeker.Next()
    48  	require.NoError(t, err)
    49  	assert.Equal(t, ('h'), b)
    50  	for i := 0; i < 18; i++ {
    51  		b, err = peeker.Next()
    52  		require.NoError(t, err)
    53  		assert.Equal(t, []rune(input)[8+i], b)
    54  	}
    55  
    56  	_, err = peeker.Peek()
    57  	require.Error(t, err)
    58  
    59  	_, err = peeker.Next()
    60  	require.Error(t, err)
    61  
    62  }