github.com/aquasecurity/trivy-iac@v0.8.1-0.20240127024015-3d8e412cf0ab/pkg/scanners/toml/parser/parser_test.go (about)

     1  package parser
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/liamg/memoryfs"
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func Test_Parser(t *testing.T) {
    13  	input := `
    14  [x]
    15  y = 123
    16  z = ["a", "b", "c"]
    17  `
    18  
    19  	memfs := memoryfs.New()
    20  	err := memfs.WriteFile("something.yaml", []byte(input), 0644)
    21  	require.NoError(t, err)
    22  
    23  	data, err := New().ParseFile(context.TODO(), memfs, "something.yaml")
    24  	require.NoError(t, err)
    25  
    26  	msi, ok := data.(map[string]interface{})
    27  	require.True(t, ok)
    28  
    29  	xObj, ok := msi["x"]
    30  	require.True(t, ok)
    31  
    32  	xMsi, ok := xObj.(map[string]interface{})
    33  	require.True(t, ok)
    34  
    35  	yRaw, ok := xMsi["y"]
    36  	require.True(t, ok)
    37  
    38  	y, ok := yRaw.(int64)
    39  	require.True(t, ok)
    40  
    41  	assert.Equal(t, int64(123), y)
    42  
    43  	zRaw, ok := xMsi["z"]
    44  	require.True(t, ok)
    45  
    46  	z, ok := zRaw.([]interface{})
    47  	require.True(t, ok)
    48  
    49  	require.Len(t, z, 3)
    50  
    51  	assert.Equal(t, "a", z[0])
    52  	assert.Equal(t, "b", z[1])
    53  	assert.Equal(t, "c", z[2])
    54  
    55  }