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