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

     1  package armjson
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func Test_Array_Empty(t *testing.T) {
    13  	example := []byte(`[]`)
    14  	target := []int{}
    15  	metadata := types.NewTestMetadata()
    16  	require.NoError(t, Unmarshal(example, &target, &metadata))
    17  	assert.Len(t, target, 0)
    18  }
    19  
    20  func Test_Array_ToSlice(t *testing.T) {
    21  	example := []byte(`[1, 2, 3]`)
    22  	target := []int{}
    23  	metadata := types.NewTestMetadata()
    24  	require.NoError(t, Unmarshal(example, &target, &metadata))
    25  	assert.Len(t, target, 3)
    26  	assert.EqualValues(t, []int{1, 2, 3}, target)
    27  }
    28  
    29  func Test_Array_ToArray(t *testing.T) {
    30  	example := []byte(`[3, 2, 1]`)
    31  	target := [3]int{6, 6, 6}
    32  	metadata := types.NewTestMetadata()
    33  	require.NoError(t, Unmarshal(example, &target, &metadata))
    34  	assert.Len(t, target, 3)
    35  	assert.EqualValues(t, [3]int{3, 2, 1}, target)
    36  }
    37  
    38  func Test_Array_ToInterface(t *testing.T) {
    39  	example := []byte(`{ "List": [1, 2, 3] }`)
    40  	target := struct {
    41  		List interface{}
    42  	}{}
    43  	metadata := types.NewTestMetadata()
    44  	require.NoError(t, Unmarshal(example, &target, &metadata))
    45  	assert.Len(t, target.List, 3)
    46  }