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

     1  package checkmarxOne
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestCreateJSONReport(t *testing.T) {
    10  	resultMap := map[string]interface{}{}
    11  	resultMap["ToolName"] = `checkmarxone`
    12  	resultMap["ProjectName"] = `ssba`
    13  	resultMap["Group"] = `test-group`
    14  	resultMap["GroupFullPathOnReportDate"] = `test-group-path`
    15  	resultMap["Application"] = `test-app`
    16  	resultMap["ApplicationFullPathOnReportDate"] = `test-app-path`
    17  	resultMap["DeepLink"] = `https://cx1.sap/projects/f5702f86-b396-417f-82e2-4949a55d5382/scans?branch=master&page=1&id=21e40b36-0dd7-48e5-9768-da1a8f36c907`
    18  	resultMap["Preset"] = `Checkmarx Default`
    19  	resultMap["ToolVersion"] = `v1`
    20  	resultMap["ScanType"] = `Incremental`
    21  	resultMap["ProjectId"] = `f5702f86-b396-417f-82e2-4949a55d5382`
    22  	resultMap["ScanId"] = `21e40b36-0dd7-48e5-9768-da1a8f36c907`
    23  
    24  	resultMap["High"] = map[string]int{}
    25  	resultMap["Medium"] = map[string]int{}
    26  	resultMap["Low"] = map[string]int{}
    27  	resultMap["Information"] = map[string]int{}
    28  	submap := map[string]int{}
    29  	submap["Issues"] = 10
    30  	submap["NotFalsePositive"] = 10
    31  	resultMap["High"] = submap
    32  
    33  	submap = map[string]int{}
    34  	submap["Issues"] = 4
    35  	submap["NotFalsePositive"] = 0
    36  	resultMap["Medium"] = submap
    37  
    38  	submap = map[string]int{}
    39  	submap["Issues"] = 2
    40  	submap["NotFalsePositive"] = 2
    41  	submap["Confirmed"] = 1
    42  	submap["NotExploitable"] = 1
    43  	resultMap["Low"] = submap
    44  
    45  	submap = map[string]int{}
    46  	submap["Issues"] = 5
    47  	submap["NotFalsePositive"] = 5
    48  	resultMap["Information"] = submap
    49  
    50  	lowPerQuery := map[string]map[string]int{}
    51  	submap = map[string]int{}
    52  	submap["Issues"] = 4
    53  	submap["Confirmed"] = 0
    54  	submap["NotExploitable"] = 0
    55  	lowPerQuery["Low_Query_Name_1"] = submap
    56  
    57  	submap = map[string]int{}
    58  	submap["Issues"] = 5
    59  	submap["Confirmed"] = 2
    60  	submap["NotExploitable"] = 3
    61  	lowPerQuery["Low_Query_Name_2"] = submap
    62  
    63  	resultMap["LowPerQuery"] = lowPerQuery
    64  
    65  	reportingData := CreateJSONHeaderReport(&resultMap)
    66  	assert.Equal(t, "21e40b36-0dd7-48e5-9768-da1a8f36c907", reportingData.ScanID)
    67  	assert.Equal(t, "ssba", reportingData.ProjectName)
    68  	assert.Equal(t, "f5702f86-b396-417f-82e2-4949a55d5382", reportingData.ProjectID)
    69  	assert.Equal(t, "test-group", reportingData.GroupID)
    70  	assert.Equal(t, "test-group-path", reportingData.GroupName)
    71  	assert.Equal(t, "CheckmarxOne", reportingData.ToolName)
    72  	assert.Equal(t, "https://cx1.sap/projects/f5702f86-b396-417f-82e2-4949a55d5382/scans?branch=master&page=1&id=21e40b36-0dd7-48e5-9768-da1a8f36c907", reportingData.DeepLink)
    73  	assert.Equal(t, "Checkmarx Default", reportingData.Preset)
    74  	assert.Equal(t, "v1", reportingData.ToolVersion)
    75  	assert.Equal(t, "Incremental", reportingData.ScanType)
    76  
    77  	lowList := (*reportingData.Findings)[2].LowPerQuery
    78  	lowListLen := len(*lowList)
    79  	assert.Equal(t, 2, lowListLen)
    80  
    81  	for i := 0; i < lowListLen; i++ {
    82  		if (*lowList)[i].QueryName == "Low_Query_Name_1" {
    83  			assert.Equal(t, 0, (*lowList)[i].Audited)
    84  			assert.Equal(t, 4, (*lowList)[i].Total)
    85  		}
    86  
    87  		if (*lowList)[i].QueryName == "Low_Query_Name_2" {
    88  			assert.Equal(t, 5, (*lowList)[i].Audited)
    89  			assert.Equal(t, 5, (*lowList)[i].Total)
    90  		}
    91  	}
    92  
    93  	lowPerQuery = map[string]map[string]int{}
    94  	submap = map[string]int{}
    95  	submap["Issues"] = 100
    96  	submap["Confirmed"] = 10
    97  	submap["NotExploitable"] = 0
    98  	lowPerQuery["Low_Query_Name_1"] = submap
    99  
   100  	submap = map[string]int{}
   101  	submap["Issues"] = 5
   102  	submap["Confirmed"] = 2
   103  	submap["NotExploitable"] = 3
   104  	lowPerQuery["Low_Query_Name_2"] = submap
   105  
   106  	resultMap["LowPerQuery"] = lowPerQuery
   107  }