mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-22 07:10:41 -08:00
97 lines
2.5 KiB
Go
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"))
|
|
}
|