Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@ placesComparison: places SPACE numberComparison # placesBasic
| places SPACE inRangeNumberComparison # placesRange
| places SPACE nullComparison # placesNull
;
tasksStateComparison: tasksState SPACE (NOT SPACE?)? op=EQ SPACE state=(ENABLED | DISABLED) ;
tasksStateComparison: tasksState SPACE (NOT SPACE?)? op=(EQ | NEQ) SPACE state=(ENABLED | DISABLED) ;
tasksUserIdComparison: tasksUserId SPACE stringComparison # tasksUserIdBasic
| tasksUserId SPACE inListStringComparison # tasksUserIdList
| tasksUserId SPACE nullComparison # tasksUserIdNull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import com.netgrif.application.engine.auth.domain.QUser;
import com.netgrif.application.engine.auth.service.interfaces.IUserService;
import com.netgrif.application.engine.petrinet.domain.QPetriNet;
import com.netgrif.application.engine.pfql.domain.antlr4.QueryLangBaseListener;

Check failure on line 7 in src/main/java/com/netgrif/application/engine/pfql/service/QueryLangEvaluator.java

View workflow job for this annotation

GitHub Actions / Build

package com.netgrif.application.engine.pfql.domain.antlr4 does not exist

Check failure on line 7 in src/main/java/com/netgrif/application/engine/pfql/service/QueryLangEvaluator.java

View workflow job for this annotation

GitHub Actions / Test

package com.netgrif.application.engine.pfql.domain.antlr4 does not exist
import com.netgrif.application.engine.pfql.domain.antlr4.QueryLangParser;

Check failure on line 8 in src/main/java/com/netgrif/application/engine/pfql/service/QueryLangEvaluator.java

View workflow job for this annotation

GitHub Actions / Build

package com.netgrif.application.engine.pfql.domain.antlr4 does not exist

Check failure on line 8 in src/main/java/com/netgrif/application/engine/pfql/service/QueryLangEvaluator.java

View workflow job for this annotation

GitHub Actions / Test

package com.netgrif.application.engine.pfql.domain.antlr4 does not exist
import com.netgrif.application.engine.pfql.domain.enums.ComparisonType;
import com.netgrif.application.engine.pfql.domain.enums.QueryType;
import com.netgrif.application.engine.workflow.domain.QCase;
Expand Down Expand Up @@ -1489,16 +1489,16 @@

@Override
public void exitTasksStateComparison(QueryLangParser.TasksStateComparisonContext ctx) {
// todo implement task states
// String taskId = ctx.tasksState().taskId.getText();
// Token op = ctx.op;
// checkOp(ComparisonType.STRING, op);
// boolean not = ctx.NOT() != null;
// State state = ctx.state.getType() == QueryLangParser.ENABLED ? State.ENABLED : State.DISABLED;
//
// setMongoQuery(ctx, null);
// setElasticQuery(ctx, buildElasticQuery("tasks." + taskId + ".state", op.getType(), state.toString(), not));
// this.searchWithElastic = true;
String transId = ctx.tasksState().taskId.getText();
Token op = ctx.op;
checkOp(ComparisonType.STRING, op);
boolean not = ctx.NOT() != null;
boolean isEnabled = ctx.state.getType() == QueryLangParser.ENABLED;
boolean taskIsExecutable = isEnabled != not;

setMongoQuery(ctx, null);
setElasticQuery(ctx, buildElasticQuery("taskIds", op.getType(), transId, !taskIsExecutable));
this.searchWithElastic = true;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,18 @@ public void testSearchService() throws InterruptedException {

cases = searchService.search("cases: processIdentifier eq 'query_test' and data.text_0.value eq 'x44'*");
assertEquals(1, ((Page<Case>) cases).getTotalElements());

cases = searchService.search("cases: processIdentifier eq 'query_test' and tasks.t1.state eq enabled");
assertEquals(10, ((Page<Case>) cases).getTotalElements());

cases = searchService.search("cases: processIdentifier eq 'query_test' and tasks.t1.state eq disabled");
assertEquals(0, ((Page<Case>) cases).getTotalElements());

cases = searchService.search("cases: processIdentifier eq 'query_test' and tasks.t1.state neq disabled");
assertEquals(10, ((Page<Case>) cases).getTotalElements());

cases = searchService.search("cases: processIdentifier eq 'query_test' and tasks.t1.state not eq disabled");
assertEquals(10, ((Page<Case>) cases).getTotalElements());
}

@Test
Expand Down Expand Up @@ -1146,13 +1158,12 @@ public void testSimpleElasticCaseQuery() {
checkNumberComparisonElastic("case", "places.p1.marking", "places.p1.marking");

// task state comparison
// TODO: fix
// actual = evaluateQuery("case: tasks.t1.state eq enabled").getFullElasticQuery();
// expected = String.format("tasks.t1.state:%s", State.ENABLED);
// assertEquals(expected, actual);
// actual = evaluateQuery("case: tasks.t1.state eq disabled").getFullElasticQuery();
// expected = String.format("tasks.t1.state:%s", State.DISABLED);
// assertEquals(expected, actual);
actual = evaluateQuery("case: tasks.t1.state eq enabled").getFullElasticQuery();
expected = "taskIds:t1";
assertEquals(expected, actual);
actual = evaluateQuery("case: tasks.t1.state eq disabled").getFullElasticQuery();
expected = "NOT taskIds:t1";
assertEquals(expected, actual);

// task userId comparison
actual = evaluateQuery("case: tasks.t1.userId eq 'test'").getFullElasticQuery();
Expand Down
Loading