Files
trivy/pkg/vulnerability/vulnerability_test.go
2019-10-31 12:26:02 +02:00

97 lines
2.5 KiB
Go

package vulnerability
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
func TestFillAndFilter(t *testing.T) {
detectedVulns := []DetectedVulnerability{
{
VulnerabilityID: "foo",
Severity: SeverityNames[SeverityHigh],
},
{
VulnerabilityID: "piyo",
Severity: SeverityNames[SeverityCritical],
},
{
VulnerabilityID: "bar",
PkgName: "barpkg",
Severity: SeverityNames[SeverityLow],
},
{
VulnerabilityID: "hoge",
},
{
VulnerabilityID: "baz",
Severity: SeverityNames[SeverityMedium],
},
}
severities := []Severity{SeverityLow, SeverityCritical, SeverityMedium, SeverityHigh, SeverityUnknown}
oldgetDetailFunc := getDetailFunc
getDetailFunc = func(vulnID string) (severity Severity, s string, s2 string, strings []string) {
switch vulnID {
case "foo":
return SeverityHigh, "footitle", "foodesc", []string{"fooref"}
case "bar":
return SeverityLow, "bartitle", "bardesc", []string{"barref"}
case "baz":
return SeverityMedium, "baztitle", "bazdesc", []string{"bazref"}
case "piyo":
return SeverityCritical, "piyotitle", "piyodesc", []string{"piyoref"}
case "hoge":
return SeverityUnknown, "hogetitle", "hogedesc", []string{"hogeref"}
default:
assert.Fail(t, fmt.Sprintf("unexpected vulnID: %s", vulnID))
return SeverityUnknown, "", "", nil
}
}
defer func() {
getDetailFunc = oldgetDetailFunc
}()
assert.Equal(t, []DetectedVulnerability{
{
VulnerabilityID: "piyo",
Title: "piyotitle",
Description: "piyodesc",
Severity: SeverityNames[SeverityCritical],
References: []string{"piyoref"},
},
{
VulnerabilityID: "foo",
Title: "footitle",
Description: "foodesc",
Severity: SeverityNames[SeverityHigh],
References: []string{"fooref"},
},
{
VulnerabilityID: "baz",
Title: "baztitle",
Description: "bazdesc",
Severity: SeverityNames[SeverityMedium],
References: []string{"bazref"},
},
{
VulnerabilityID: "hoge",
Title: "hogetitle",
Description: "hogedesc",
Severity: SeverityNames[SeverityUnknown],
References: []string{"hogeref"},
},
{
VulnerabilityID: "bar",
PkgName: "barpkg",
Title: "bartitle",
Description: "bardesc",
Severity: SeverityNames[SeverityLow],
References: []string{"barref"},
},
}, FillAndFilter(detectedVulns, severities, false, ".trivyignore"))
}