package appregistry import ( "testing" "github.com/stretchr/testify/assert" ) type testInput struct { csvSources string expectedPackages []*Package } var testGoodInput = []testInput{ { "Jaeger,Jaeger", []*Package{ &Package{Name: "Jaeger", Release: ""}, }, }, { "Jaeger,Kubevirt:10.0.0", []*Package{ &Package{Name: "Jaeger", Release: ""}, &Package{Name: "Kubevirt", Release: "10.0.0"}, }, }, { "Jaeger,Kubevirt:10.0.0,Kubevirt", []*Package{ &Package{Name: "Jaeger", Release: ""}, &Package{Name: "Kubevirt", Release: "10.0.0"}, }, }, { "Jaeger :2.0.0, Kubevirt: 10.0.0, Kubevirt", []*Package{ &Package{Name: "Jaeger", Release: "2.0.0"}, &Package{Name: "Kubevirt", Release: "10.0.0"}, }, }, { "", []*Package{}, }, } func TestGoodInput(t *testing.T) { parser := inputParser{sourceSpecifier: ®istrySpecifier{}} for _, goodInput := range testGoodInput { actual, err := parser.Parse( []string{"https://quay.io/cnr|community-operator|"}, goodInput.csvSources, ) assert.NoError(t, err) assert.Equal(t, goodInput.expectedPackages, actual.Packages) } } var testFaultyInput = []testInput{ { "Jaeger,Kubevirt:10.0.0:11.0.0", nil, }, } func TestFaultyInput(t *testing.T) { parser := inputParser{sourceSpecifier: ®istrySpecifier{}} for _, mfInput := range testFaultyInput { _, err := parser.Parse( []string{"https://quay.io/cnr|community-operator|"}, mfInput.csvSources, ) assert.Error(t, err) } }