Skip to content

Commit d0b5f14

Browse files
add new result format (#51)
* add new result format
1 parent 2c895cb commit d0b5f14

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed

src/main/java/com/checkmarx/ast/results/ReportFormat.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
public enum ReportFormat {
66
summaryHTML(".html"),
77
json(".json"),
8+
summaryJSON(".json"),
89
sarif(".sarif"),
910
;
1011

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.checkmarx.ast.results;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4+
import com.fasterxml.jackson.annotation.JsonInclude;
5+
import com.fasterxml.jackson.annotation.JsonProperty;
6+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
7+
import lombok.Value;
8+
9+
@Value
10+
@JsonDeserialize()
11+
@JsonInclude(JsonInclude.Include.NON_NULL)
12+
@JsonIgnoreProperties(ignoreUnknown = true)
13+
public class ResultsSummary {
14+
15+
private int totalIssues;
16+
private int highIssues;
17+
private int mediumIssues;
18+
private int lowIssues;
19+
private int sastIssues;
20+
private int scaIssues;
21+
private int kicsIssues;
22+
private String riskStyle;
23+
private String riskMessage;
24+
private String status;
25+
private String scanId;
26+
private String scanDate;
27+
private String scanTime;
28+
private String createdAt;
29+
private String projectId;
30+
private String baseURI;
31+
32+
33+
public ResultsSummary(@JsonProperty("TotalIssues") int totalIssues,
34+
@JsonProperty("HighIssues") int highIssues,
35+
@JsonProperty("MediumIssues") int mediumIssues,
36+
@JsonProperty("LowIssues") int lowIssues,
37+
@JsonProperty("SastIssues") int sastIssues,
38+
@JsonProperty("ScaIssues") int scaIssues,
39+
@JsonProperty("KicsIssues") int kicsIssues,
40+
@JsonProperty("RiskStyle") String riskStyle,
41+
@JsonProperty("RiskMsg") String riskMessage,
42+
@JsonProperty("Status") String status,
43+
@JsonProperty("ScanID") String scanId,
44+
@JsonProperty("ScanDate") String scanDate,
45+
@JsonProperty("ScanTime") String scanTime,
46+
@JsonProperty("CreatedAt") String createdAt,
47+
@JsonProperty("ProjectID") String projectId,
48+
@JsonProperty("BaseURI") String baseURI) {
49+
this.totalIssues = totalIssues;
50+
this.highIssues = highIssues;
51+
this.mediumIssues = mediumIssues;
52+
this.lowIssues = lowIssues;
53+
this.sastIssues = sastIssues;
54+
this.scaIssues = scaIssues;
55+
this.kicsIssues = kicsIssues;
56+
this.riskStyle = riskStyle;
57+
this.riskMessage = riskMessage;
58+
this.status = status;
59+
this.scanId = scanId;
60+
this.scanDate = scanDate;
61+
this.scanTime = scanTime;
62+
this.createdAt = createdAt;
63+
this.projectId = projectId;
64+
this.baseURI = baseURI;
65+
}
66+
}

src/main/java/com/checkmarx/ast/wrapper/CxWrapper.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.checkmarx.ast.project.Project;
55
import com.checkmarx.ast.results.ReportFormat;
66
import com.checkmarx.ast.results.Results;
7+
import com.checkmarx.ast.results.ResultsSummary;
78
import com.checkmarx.ast.scan.Scan;
89
import com.fasterxml.jackson.databind.ObjectMapper;
910
import com.fasterxml.jackson.databind.type.CollectionType;
@@ -195,6 +196,12 @@ public List<String> projectBranches(@NonNull UUID projectId, String filter)
195196
(line) -> CxBaseObject.parse(line, BRANCHES_TYPE));
196197
}
197198

199+
public ResultsSummary resultsSummary(@NonNull UUID scanId) throws IOException, InterruptedException, CxException {
200+
return new ObjectMapper()
201+
.readerFor(ResultsSummary.class)
202+
.readValue(results(scanId, ReportFormat.summaryJSON));
203+
}
204+
198205
public Results results(@NonNull UUID scanId) throws IOException, InterruptedException, CxException {
199206
return new ObjectMapper()
200207
.readerFor(Results.class)

src/test/java/com/checkmarx/ast/ResultTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import com.checkmarx.ast.results.ReportFormat;
44
import com.checkmarx.ast.results.Results;
5+
import com.checkmarx.ast.results.ResultsSummary;
56
import com.checkmarx.ast.scan.Scan;
67
import org.junit.Assert;
78
import org.junit.Test;
89

910
import java.util.List;
1011
import java.util.UUID;
1112

13+
import static org.junit.Assert.assertNotNull;
1214
import static org.junit.Assert.assertTrue;
1315

1416
public class ResultTest extends BaseTest {
@@ -32,11 +34,21 @@ public void testResultsJSON() throws Exception {
3234
}
3335

3436
@Test
37+
public void testResultsSummaryJSON() throws Exception {
38+
List<Scan> scanList = wrapper.scanList();
39+
Assert.assertTrue(scanList.size() > 0);
40+
String scanId = scanList.get(0).getID();
41+
ResultsSummary results = wrapper.resultsSummary(UUID.fromString(scanId));
42+
assertNotNull(results.getScanId());
43+
}
44+
45+
@Test(expected = Test.None.class)
3546
public void testResultsStructure() throws Exception {
3647
List<Scan> scanList = wrapper.scanList();
3748
Assert.assertTrue(scanList.size() > 0);
3849
String scanId = scanList.get(0).getID();
3950
Results results = wrapper.results(UUID.fromString(scanId));
51+
results.getResults().stream().filter(result -> "sast".equalsIgnoreCase(result.getType())).findFirst();
4052
Assert.assertEquals(results.getTotalCount(), results.getResults().size());
4153
}
4254
}

0 commit comments

Comments
 (0)