1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
package attestations
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestParse(t *testing.T) {
for _, tc := range []struct {
name string
values map[string]string
expected map[string]map[string]string
}{
{
name: "simple",
values: map[string]string{
"attest:sbom": "generator=docker.io/foo/bar",
"attest:provenance": "mode=max",
},
expected: map[string]map[string]string{
"sbom": {
"generator": "docker.io/foo/bar",
},
"provenance": {
"mode": "max",
},
},
},
{
name: "extra params",
values: map[string]string{
"attest:sbom": "generator=docker.io/foo/bar,param1=foo,param2=bar",
},
expected: map[string]map[string]string{
"sbom": {
"generator": "docker.io/foo/bar",
"param1": "foo",
"param2": "bar",
},
},
},
{
name: "extra params (complex)",
values: map[string]string{
"attest:sbom": "\"generator=docker.io/foo/bar\",\"param1=foo\",\"param2=bar\",\"param3=abc,def\"",
},
expected: map[string]map[string]string{
"sbom": {
"generator": "docker.io/foo/bar",
"param1": "foo",
"param2": "bar",
"param3": "abc,def",
},
},
},
} {
t.Run(tc.name, func(t *testing.T) {
attests, err := Parse(tc.values)
require.NoError(t, err)
_ = attests
assert.Equal(t, tc.expected, attests)
})
}
}
|