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  }