Skip to content

Commit ba4d9d6

Browse files
added engineListAPI commmand support
1 parent 8d03bd4 commit ba4d9d6

File tree

4 files changed

+100
-4
lines changed

4 files changed

+100
-4
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.checkmarx.ast.engine;
2+
3+
import com.checkmarx.ast.scan.Scan;
4+
import com.checkmarx.ast.utils.JsonParser;
5+
import com.fasterxml.jackson.annotation.JsonCreator;
6+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
7+
import com.fasterxml.jackson.annotation.JsonInclude;
8+
import com.fasterxml.jackson.annotation.JsonProperty;
9+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
10+
import com.fasterxml.jackson.databind.type.TypeFactory;
11+
12+
import java.util.List;
13+
14+
@JsonDeserialize()
15+
@JsonInclude(JsonInclude.Include.NON_NULL)
16+
@JsonIgnoreProperties(ignoreUnknown = true)
17+
public class Engine {
18+
19+
String engineId;
20+
String engineName;
21+
String apiURL;
22+
String apiName;
23+
String description;
24+
25+
@JsonCreator
26+
public Engine(@JsonProperty("EngineID") String engineId, @JsonProperty("EngineName") String engineName,
27+
@JsonProperty("ApiURL") String apiURL, @JsonProperty("ApiName") String apiName, @JsonProperty("Description") String description){
28+
this.engineId=engineId;
29+
this.engineName=engineName;
30+
this.apiURL=apiURL;
31+
this.apiName=apiName;
32+
this.description=description;
33+
}
34+
35+
36+
public static <T> T fromLine(String line) {
37+
return JsonParser.parse(line, TypeFactory.defaultInstance().constructType(Engine.class));
38+
}
39+
40+
public static <T> List<T> listFromLine(String line) {
41+
return JsonParser.parse(line, TypeFactory.defaultInstance().constructCollectionType(List.class, Engine.class));
42+
}
43+
44+
45+
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@ public final class CxConstants {
2424
static final String CMD_PROJECT = "project";
2525
static final String SUB_CMD_BRANCHES = "branches";
2626
static final String CMD_SCAN = "scan";
27+
static final String ENGINE_CMD="engine";
2728
static final String SUB_CMD_SHOW = "show";
29+
static final String ENGINE_NAME="--engine-name";
2830
static final String RESULTS_BFL_SUB_CMD = "bfl";
2931
static final String SUB_CMD_LIST = "list";
32+
static final String SUB_CMD_ENGINE_LIST="list-api";
3033
static final String SUB_CMD_ASCA = "asca";
3134
static final String SUB_CMD_CREATE = "create";
3235
static final String SUB_CMD_CANCEL = "cancel";
@@ -36,6 +39,7 @@ public final class CxConstants {
3639
static final String ALL_STATES_FLAG = "--all";
3740
static final String CMD_RESULT = "results";
3841
static final String FORMAT = "--format";
42+
static final String OUTPUT_FORMAT="--output-format";
3943
static final String SCAN_INFO_FORMAT = "--scan-info-format";
4044
static final String FORMAT_JSON = "json";
4145
static final String FILTER = "--filter";

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

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.checkmarx.ast.asca.ScanResult;
44
import com.checkmarx.ast.codebashing.CodeBashing;
5+
import com.checkmarx.ast.engine.Engine;
56
import com.checkmarx.ast.kicsRealtimeResults.KicsRealtimeResults;
67
import com.checkmarx.ast.learnMore.LearnMore;
78
import com.checkmarx.ast.predicate.CustomState;
@@ -26,10 +27,7 @@
2627
import java.io.IOException;
2728
import java.lang.reflect.Field;
2829
import java.nio.file.Files;
29-
import java.util.ArrayList;
30-
import java.util.List;
31-
import java.util.Map;
32-
import java.util.UUID;
30+
import java.util.*;
3331

3432
public class CxWrapper {
3533

@@ -95,6 +93,23 @@ public List<Scan> scanList(String filter) throws IOException, InterruptedExcepti
9593
return Execution.executeCommand(withConfigArguments(arguments), logger, Scan::listFromLine);
9694
}
9795

96+
97+
public List<Engine> engineList( String engineName, String outputFormat) throws IOException, InterruptedException, CxException {
98+
this.logger.info("Fetching the engine list");
99+
100+
List<String> arguments = new ArrayList<>();
101+
arguments.add(CxConstants.ENGINE_CMD);
102+
arguments.add(CxConstants.SUB_CMD_ENGINE_LIST);
103+
if(engineName!=null){
104+
arguments.add(CxConstants.ENGINE_NAME);
105+
arguments.add(engineName);
106+
}
107+
arguments.addAll(jsonArugumentsOutput());
108+
109+
return Execution.executeCommand(withConfigArguments(arguments), logger, Engine::listFromLine);
110+
}
111+
112+
98113
public Scan scanCreate(@NonNull Map<String, String> params) throws IOException, InterruptedException, CxException {
99114
return scanCreate(params, "");
100115
}
@@ -293,6 +308,7 @@ public List<CodeBashing> codeBashingList(@NonNull String cweId, @NonNull String
293308

294309
List<String> arguments = new ArrayList<>();
295310
arguments.add(CxConstants.CMD_RESULT);
311+
arguments.add(CxConstants.CMD_RESULT);
296312
arguments.add(CxConstants.SUB_CMD_CODE_BASHING);
297313
arguments.add(CxConstants.LANGUAGE);
298314
arguments.add(language);
@@ -512,6 +528,15 @@ private List<String> jsonArguments() {
512528
return arguments;
513529
}
514530

531+
private List<String>jsonArugumentsOutput(){
532+
List<String> arguments= new ArrayList<>();
533+
arguments.add(CxConstants.OUTPUT_FORMAT);
534+
arguments.add(CxConstants.FORMAT_JSON);
535+
return arguments;
536+
}
537+
538+
539+
515540
private List<String> filterArguments(String filter) {
516541
List<String> arguments = new ArrayList<>();
517542

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.checkmarx.ast;
2+
3+
import com.checkmarx.ast.engine.Engine;
4+
import org.junit.jupiter.api.Assertions;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.List;
8+
9+
public class EngineTest extends BaseTest{
10+
11+
@Test
12+
void testEngineList() throws Exception{
13+
List<Engine>engineList= wrapper.engineList(null,null);
14+
Assertions.assertTrue(engineList.size()<=10);
15+
}
16+
17+
@Test
18+
void testSASTList() throws Exception{
19+
List<Engine>sastEngineList= wrapper.engineList("SAST",null);
20+
Assertions.assertTrue(sastEngineList.size()<=10);
21+
}
22+
}

0 commit comments

Comments
 (0)