* feat: update-trivy * add v2 parser * implement v2 * refactor * feat: add show version to future-vuls * add test case for v2 * trivy v0.20.0 * support --list-all-pkgs * fix lint err * add test case for jar * add a test case for gemspec in container * remove v1 parser and change Library struct * Changed the field name in the model struct LibraryScanner * add comment * fix comment * fix comment * chore * add struct tag
95 lines
1.5 KiB
Go
95 lines
1.5 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",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"/pathA", "libA"},
|
|
want: map[string]Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "multi file",
|
|
lss: LibraryScanners{
|
|
{
|
|
LockfilePath: "/pathA",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
LockfilePath: "/pathB",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.5",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"/pathA", "libA"},
|
|
want: map[string]Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "miss",
|
|
lss: LibraryScanners{
|
|
{
|
|
LockfilePath: "/pathA",
|
|
Libs: []Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
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)
|
|
}
|
|
})
|
|
}
|
|
}
|