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 }