com.xlrit.gears.runner.run.Config Maven / Gradle / Ivy
package com.xlrit.gears.runner.run;
import com.fasterxml.jackson.databind.JsonNode;
public class Config {
public String projectDir = null;
public String generateRunnerTarget = null;
public String endpoint = "http://localhost:8080/graphql";
public String scenarioDir = "scenarios";
public String dataDir = "data";
public String runnerTarget = "graphql";
public int waitMillis = 200;
public int timeoutMillis = 4000;
public boolean dryrun = false;
public boolean headless = false;
public void readJson(JsonNode config) {
JsonNode options = config.get("runnerOptions");
if (options != null) {
endpoint = orElseString(options.get("endpoint"), endpoint);
timeoutMillis = orElseInt(options.get("timeoutMillis"), timeoutMillis);
waitMillis = orElseInt(options.get("waitMillis"), waitMillis);
runnerTarget = orElseString(options.get("target"), runnerTarget);
}
JsonNode dirs = config.get("dirs");
if (dirs != null) {
scenarioDir = orElseString(dirs.get("scenarios"), scenarioDir);
dataDir = orElseString(dirs.get("data"), dataDir);
}
JsonNode generation = config.get("generate");
if (generation != null) {
projectDir = orElseString(generation.get("project"), projectDir);
generateRunnerTarget = orElseString(generation.get("target"), generateRunnerTarget);
}
}
private String orElseString(JsonNode possiblyNull, String value) {
if (possiblyNull == null) return value;
else return possiblyNull.asText();
}
private int orElseInt(JsonNode possiblyNull, int value) {
if (possiblyNull == null) return value;
else return possiblyNull.asInt();
}
}