Skip to content

Commit eca1c7c

Browse files
code changes for engine command
1 parent 8db9b0c commit eca1c7c

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
@@ -41,6 +41,10 @@ public final class CxConstants {
4141
static final String FILTER = "--filter";
4242
static final String SCAN_ID = "--scan-id";
4343
static final String PROJECT_ID = "--project-id";
44+
static final String ENGINE_CMD="engine";
45+
static final String ENGINE_NAME="--engine-name";
46+
static final String SUB_CMD_ENGINE_LIST="list-api";
47+
static final String ENGINE = "--engine";
4448
static final String SIMILARITY_ID = "--similarity-id";
4549
static final String QUERY_ID = "--query-id";
4650
static final String STATE = "--state";

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)