github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/protecode/report_test.go (about)

     1  //go:build unit
     2  // +build unit
     3  
     4  package protecode
     5  
     6  import (
     7  	"fmt"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  
    12  	"github.com/SAP/jenkins-library/pkg/mock"
    13  )
    14  
    15  func TestWriteReport(t *testing.T) {
    16  	files := mock.FilesMock{}
    17  
    18  	expected := "{\"target\":\"REPORTFILENAME\",\"mandatory\":true,\"productID\":\"4711\",\"serverUrl\":\"DUMMYURL\",\"count\":\"0\",\"cvss2GreaterOrEqualSeven\":\"4\",\"cvss3GreaterOrEqualSeven\":\"3\",\"excludedVulnerabilities\":\"2\",\"triagedVulnerabilities\":\"0\",\"historicalVulnerabilities\":\"1\",\"Vulnerabilities\":[{\"cve\":\"Vulnerability\",\"cvss\":\"2.5\",\"cvss3_score\":\"5.5\"}]}"
    19  
    20  	var parsedResult map[string]int = make(map[string]int)
    21  	parsedResult["historical_vulnerabilities"] = 1
    22  	parsedResult["excluded_vulnerabilities"] = 2
    23  	parsedResult["cvss3GreaterOrEqualSeven"] = 3
    24  	parsedResult["cvss2GreaterOrEqualSeven"] = 4
    25  	parsedResult["vulnerabilities"] = 5
    26  
    27  	err := WriteReport(ReportData{ServerURL: "DUMMYURL", FailOnSevereVulnerabilities: false, ExcludeCVEs: "", Target: "REPORTFILENAME", ProductID: fmt.Sprintf("%v", 4711), Vulnerabilities: []Vuln{{"Vulnerability", "2.5", "5.5"}}}, ".", "report.json", parsedResult, &files)
    28  
    29  	if assert.NoError(t, err) {
    30  		content, err := files.FileRead("report.json")
    31  		assert.NoError(t, err)
    32  		assert.Equal(t, expected, string(content))
    33  	}
    34  }