* add a github actions config * fix(log): Don't create a log dir when testing * remove a meaningless test case * Thanks for everything, Mr, Travys. * add golangci * add goreleaser.yml * add tidy.yml * add golang-ci * fix many lint warnings
100 lines
1.6 KiB
Go
100 lines
1.6 KiB
Go
package models
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/aquasecurity/trivy/pkg/types"
|
|
)
|
|
|
|
func TestLibraryScanners_Find(t *testing.T) {
|
|
type args struct {
|
|
name string
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
lss LibraryScanners
|
|
args args
|
|
want map[string]types.Library
|
|
}{
|
|
{
|
|
name: "single file",
|
|
lss: LibraryScanners{
|
|
{
|
|
Path: "/pathA",
|
|
Libs: []types.Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"libA"},
|
|
want: map[string]types.Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "multi file",
|
|
lss: LibraryScanners{
|
|
{
|
|
Path: "/pathA",
|
|
Libs: []types.Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Path: "/pathB",
|
|
Libs: []types.Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.5",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"libA"},
|
|
want: map[string]types.Library{
|
|
"/pathA": {
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
"/pathB": {
|
|
Name: "libA",
|
|
Version: "1.0.5",
|
|
},
|
|
},
|
|
},
|
|
{
|
|
name: "miss",
|
|
lss: LibraryScanners{
|
|
{
|
|
Path: "/pathA",
|
|
Libs: []types.Library{
|
|
{
|
|
Name: "libA",
|
|
Version: "1.0.0",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
args: args{"libB"},
|
|
want: map[string]types.Library{},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := tt.lss.Find(tt.args.name); !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("LibraryScanners.Find() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|