[Fix] fixed broken tests in SOQL

This commit is contained in:
Robert von Burg 2018-02-28 16:43:33 +01:00
parent bfaa57a2b9
commit 1830d9fe86
5 changed files with 26 additions and 22 deletions

View File

@ -49,8 +49,9 @@ public class QueryProcessor {
public QueryResponse process(QueryRequest request, StrolchTransaction tx) {
String statement = request.getStatement();
Map<String, Object> parameterMap = request.getParameterMap();
CompiledStatement compiledStatement = null;
CompiledStatement compiledStatement;
try {
ParseTree tree = parseStatement(statement);
compiledStatement = compile(tree);
@ -74,7 +75,7 @@ public class QueryProcessor {
for (int i = 0; i < row.size(); i++) {
inputObjects.put((String) keys[i], row.get(i));
}
List<Object> resultRow = compiledStatement.evaluate(inputObjects, request.getParameter());
List<Object> resultRow = compiledStatement.evaluate(inputObjects, parameterMap);
if (!resultRow.isEmpty())
resultSet.add(resultRow);
@ -82,7 +83,7 @@ public class QueryProcessor {
QueryResponse response = new QueryResponse();
response.setStatement(statement);
response.setParameter(request.getParameter());
response.setParameterMap(parameterMap);
response.setResultSet(resultSet);
return response;

View File

@ -19,8 +19,8 @@ public class QueryRequest {
// the SOQL query string
private String statement;
// the parameter of the SOQL query
private Map<String, Object> parameter;
// the parameterMap of the SOQL query
private Map<String, Object> parameterMap;
public String getStatement() {
return statement;
@ -30,18 +30,18 @@ public class QueryRequest {
this.statement = statement;
}
public Map<String, Object> getParameter() {
return parameter;
public Map<String, Object> getParameterMap() {
return parameterMap;
}
public void setParameter(Map<String, Object> parameter) {
this.parameter = parameter;
public void setParameterMap(Map<String, Object> parameter) {
this.parameterMap = parameter;
}
public void addParameter(String key, Object value) {
if (this.parameter == null)
this.parameter = new HashMap<>();
this.parameter.put(key, value);
if (this.parameterMap == null)
this.parameterMap = new HashMap<>();
this.parameterMap.put(key, value);
}
/**
@ -56,9 +56,9 @@ public class QueryRequest {
JsonObject parameterJ = new JsonObject();
rootJ.add(PARAMETER, parameterJ);
Set<String> keys = this.parameter.keySet();
Set<String> keys = this.parameterMap.keySet();
for (String key : keys) {
Object param = this.parameter.get(key);
Object param = this.parameterMap.get(key);
parameterJ.addProperty(key, param.toString());
}

View File

@ -32,6 +32,10 @@ public class QueryResponse extends QueryRequest {
return this.resultSet;
}
public JsonObject asJson() {
return asJson(false);
}
public JsonObject asJson(boolean flat) {
JsonObject rootJ = super.asJson();

View File

@ -28,7 +28,7 @@ public class QueryProcessorTest extends BaseTest {
processor.setInputCollections(inputCollections);
QueryRequest request = new QueryRequest();
request.getParameter().put("id", "0");
request.addParameter("id", "0");
request.setStatement("SELECT r,o FROM Resource r, Order o WHERE r.getId() = :id AND o.getId() = :id");
String expected =
@ -61,7 +61,7 @@ public class QueryProcessorTest extends BaseTest {
processor.setInputCollections(inputCollections);
QueryRequest request = new QueryRequest();
request.getParameter().put("id", "5");
request.addParameter("id", "5");
request.setStatement(
"SELECT r, o, r.getId() FROM Resource r, Order o WHERE r.getId() = :id AND o.getId() = :id");

View File

@ -17,7 +17,7 @@ public class SerialisationTest extends BaseTest {
String s = "SELECT a FROM Activity a WHERE a.getId() = :p";
final QueryRequest request = new QueryRequest();
request.setStatement(s);
request.getParameter().put("r", "Just a string!");
request.addParameter("r", "Just a string!");
return request;
}
@ -25,7 +25,7 @@ public class SerialisationTest extends BaseTest {
String s = "SELECT a FROM Activity a WHERE a.getId() = :p";
final QueryResponse response = new QueryResponse();
response.setStatement(s);
response.getParameter().put("r", "Just a string!");
response.addParameter("r", "Just a string!");
return response;
}
@ -46,14 +46,13 @@ public class SerialisationTest extends BaseTest {
final QueryRequest initial = new QueryRequest();
initial.setStatement(s);
initial.getParameter().put("p", "10010");
initial.addParameter("p", "10010");
final JsonObject jsonObject = initial.asJson();
final QueryRequest query = new QueryRequest();
query.fromJson(jsonObject);
final QueryRequest query = QueryRequest.fromJson(jsonObject);
assertEquals(s, query.getStatement());
assertEquals("10010", query.getParameter().get("p"));
assertEquals("10010", query.getParameterMap().get("p"));
}
@SuppressWarnings({ "unchecked", "rawtypes" })