Files
kubescape/core/pkg/containerscan/containerscan_test.go
2022-03-13 09:59:57 +02:00

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)
}
}