* add: package url in model.Library * feat(trivy-to-vuls): add purl for library scan result * feat(scanner/library): add purl for lockfile scan result * fix: model.Library test * fix: trivy-to-vuls test data * fix: panic case to generate purl * fix: add blank line * fix: trivy-to-vuls for using Trivy version 0.49.0 or earlier * fix: remove comment * fix: remove print * fix: testcase for Package.Identifier does not exist version * fix: add blank line * fix: expected libs * fix: PackageURL -> PURL * fix: blank line
101 lines
1.9 KiB
Go
101 lines
1.9 KiB
Go
package models
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestLibraryScanners_Find(t *testing.T) {
|
|
type args struct {
|
|
path string
|
|
name string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
lss LibraryScanners
|
|
args args
|
|
want map[string]Library
|
|
}{
|
|
{
|
|
name: "single file",
|
|
lss: LibraryScanners{
|
|
{
|
|
LockfilePath: "/pathA",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
PURL: "scheme/type/namespace/libA@1.0.0?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"/pathA", "libA"},
|
|
want: map[string]Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
PURL: "scheme/type/namespace/libA@1.0.0?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "multi file",
|
|
lss: LibraryScanners{
|
|
{
|
|
LockfilePath: "/pathA",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
PURL: "scheme/type/namespace/libA@1.0.0?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
LockfilePath: "/pathB",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.5",
|
|
PURL: "scheme/type/namespace/libA@1.0.5?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"/pathA", "libA"},
|
|
want: map[string]Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
PURL: "scheme/type/namespace/libA@1.0.0?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "miss",
|
|
lss: LibraryScanners{
|
|
{
|
|
LockfilePath: "/pathA",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
PURL: "scheme/type/namespace/libA@1.0.0?qualifiers#subpath",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"/pathA", "libB"},
|
|
want: map[string]Library{},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := tt.lss.Find(tt.args.path, tt.args.name); !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("LibraryScanners.Find() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|