mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-21 14:50:53 -08:00
* refactor(docker_conf): rename and remove unnecessary options * feat(rpc): define new API * fix(cli): change default timeout * fix(import): fix package names * refactor(vulnerability): remove old mock * refactor(utils): remove un-needed functions * feat(cache): implement cache communicating with a server * refactor(scan): separate scan function as local scanner * test(scanner): add tests for ScanImage * refactor(scan): remove unused options * test(vulnerability): generate mock * refactor(server): split a file * feat(server): implement new RPC server * feat(client): implement new RPC client * fix(cache): use new cache interface * fix(standalone): use new scanner * fix(client): use new scanner * fix(server): pass cache * test(integration): make sure an error is not nil before calling the method * fix(mod): update dependencies * test(integration): ensure the image load finishes * feat(docker): support DOCKER_HOST and DOCKER_CERT_PATH * chore(mod): update dependencies * refactor(rpc): remove old client * feat(server): support old API for backward compatibility * fix(server): check a schema version of JSON cache * fix(rpc): add a version to packages * feat(rpc): add PutImage * test: rename expectations * refactor(cache): rename LayerCache to ImageCache * refactor: rename ImageInfo to ImageReference * fix(applier): pass image_id to ApplyLayer * feat(cache): handle image cache * chore(mod): update dependencies * refactor(server): pass only config * feat(cli): add -removed-pkgs option * refactor(err): wrap errors
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package ospkg
|
|
|
|
import (
|
|
"time"
|
|
|
|
ftypes "github.com/aquasecurity/fanal/types"
|
|
"github.com/aquasecurity/trivy/pkg/types"
|
|
"github.com/stretchr/testify/mock"
|
|
)
|
|
|
|
type MockDetector struct {
|
|
mock.Mock
|
|
}
|
|
|
|
type DetectInput struct {
|
|
ImageName string
|
|
OSFamily string
|
|
OSName string
|
|
Created time.Time
|
|
Pkgs []ftypes.Package
|
|
}
|
|
type DetectOutput struct {
|
|
Vulns []types.DetectedVulnerability
|
|
Eosl bool
|
|
Err error
|
|
}
|
|
type DetectExpectation struct {
|
|
Args DetectInput
|
|
ReturnArgs DetectOutput
|
|
}
|
|
|
|
func NewMockDetector(detectExpectations []DetectExpectation) *MockDetector {
|
|
mockDetector := new(MockDetector)
|
|
for _, e := range detectExpectations {
|
|
mockDetector.On("Detect", e.Args.ImageName, e.Args.OSFamily, e.Args.OSName, e.Args.Created, e.Args.Pkgs).Return(
|
|
e.ReturnArgs.Vulns, e.ReturnArgs.Eosl, e.ReturnArgs.Err)
|
|
}
|
|
return mockDetector
|
|
}
|
|
|
|
func (_m *MockDetector) Detect(a string, b string, c string, d time.Time, e []ftypes.Package) ([]types.DetectedVulnerability, bool, error) {
|
|
ret := _m.Called(a, b, c, d, e)
|
|
ret0 := ret.Get(0)
|
|
if ret0 == nil {
|
|
return nil, false, ret.Error(2)
|
|
}
|
|
vulns, ok := ret0.([]types.DetectedVulnerability)
|
|
if !ok {
|
|
return nil, false, ret.Error(2)
|
|
}
|
|
return vulns, ret.Bool(1), ret.Error(2)
|
|
}
|