mirror of
https://github.com/kubescape/kubescape.git
synced 2026-04-15 06:58:11 +00:00
91 lines
2.1 KiB
Go
91 lines
2.1 KiB
Go
package containerscan
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/francoispqt/gojay"
|
|
)
|
|
|
|
func TestDecodeScanWIthDangearousArtifacts(t *testing.T) {
|
|
rhs := &ScanResultReport{}
|
|
er := gojay.NewDecoder(strings.NewReader(nginxScanJSON)).DecodeObject(rhs)
|
|
if er != nil {
|
|
t.Errorf("decode failed due to: %v", er.Error())
|
|
}
|
|
sumObj := rhs.Summarize()
|
|
if sumObj.Registry != "" {
|
|
t.Errorf("sumObj.Registry = %v", sumObj.Registry)
|
|
}
|
|
if sumObj.VersionImage != "nginx:1.18.0" {
|
|
t.Errorf("sumObj.VersionImage = %v", sumObj.Registry)
|
|
}
|
|
if sumObj.ImgTag != "nginx:1.18.0" {
|
|
t.Errorf("sumObj.ImgTag = %v", sumObj.ImgTag)
|
|
}
|
|
if sumObj.Status != "Success" {
|
|
t.Errorf("sumObj.Status = %v", sumObj.Status)
|
|
}
|
|
if len(sumObj.ListOfDangerousArtifcats) != 3 {
|
|
t.Errorf("sumObj.ListOfDangerousArtifcats = %v", sumObj.ListOfDangerousArtifcats)
|
|
}
|
|
}
|
|
|
|
func TestUnmarshalScanReport(t *testing.T) {
|
|
ds := GenerateContainerScanReportMock()
|
|
str1 := ds.AsFNVHash()
|
|
rhs := &ScanResultReport{}
|
|
|
|
bolB, _ := json.Marshal(ds)
|
|
r := bytes.NewReader(bolB)
|
|
|
|
er := gojay.NewDecoder(r).DecodeObject(rhs)
|
|
if er != nil {
|
|
t.Errorf("marshalling failed due to: %v", er.Error())
|
|
}
|
|
|
|
if rhs.AsFNVHash() != str1 {
|
|
t.Errorf("marshalling failed different values after marshal:\nOriginal:\n%v\nParsed:\n%v\n\n===\n", string(bolB), rhs)
|
|
}
|
|
}
|
|
|
|
func TestUnmarshalScanReport1(t *testing.T) {
|
|
ds := Vulnerability{}
|
|
if err := GenerateVulnerability(&ds); err != nil {
|
|
t.Errorf("%v\n%v\n", ds, err)
|
|
}
|
|
}
|
|
|
|
func TestGetByPkgNameSuccess(t *testing.T) {
|
|
ds := GenerateContainerScanReportMock()
|
|
a := ds.Layers[0].GetFilesByPackage("coreutils")
|
|
if a != nil {
|
|
|
|
fmt.Printf("%+v\n", *a)
|
|
}
|
|
|
|
}
|
|
|
|
func TestGetByPkgNameMissing(t *testing.T) {
|
|
ds := GenerateContainerScanReportMock()
|
|
a := ds.Layers[0].GetFilesByPackage("s")
|
|
if a != nil && len(*a) > 0 {
|
|
t.Errorf("expected - no such package should be in that layer %v\n\n; found - %v", ds, a)
|
|
}
|
|
|
|
}
|
|
|
|
func TestCalculateFixed(t *testing.T) {
|
|
res := CalculateFixed([]FixedIn{{
|
|
Name: "",
|
|
ImgTag: "",
|
|
Version: "",
|
|
}})
|
|
if 0 != res {
|
|
t.Errorf("wrong fix status: %v", res)
|
|
}
|
|
}
|