Skip to content

Commit

Permalink
[incubator-kie-issues#1791] Mapping evaluationHit id to belonging dec…
Browse files Browse the repository at this point in the history
…ision.

Introduced "Sample" model
  • Loading branch information
Gabriele-Cardosi committed Feb 3, 2025
1 parent df59294 commit 49f5211
Show file tree
Hide file tree
Showing 6 changed files with 873 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
*/
public interface AfterConditionalEvaluationEvent {

String getNodeName();

EvaluatorResult getEvaluatorResultResult();

String getExecutedId();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ protected EvaluatorResult manageBooleanOrNullIfResult(Boolean booleanResult, DMN

EvaluatorResult toReturn = evaluatorToUse.evaluate(eventManager, result);
String executedId = evaluatorIdMap.get(evaluatorToUse);
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManager, toReturn, executedId);
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManager, name, toReturn, executedId);
return toReturn;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,21 @@

public class AfterConditionalEvaluationEventImpl implements AfterConditionalEvaluationEvent {

private final String nodeName;
private final EvaluatorResult evaluatorResult;
private final String executedId;

public AfterConditionalEvaluationEventImpl(EvaluatorResult evaluatorResult, String executedId) {
public AfterConditionalEvaluationEventImpl(String nodeName, EvaluatorResult evaluatorResult, String executedId) {
this.nodeName = nodeName;
this.evaluatorResult = evaluatorResult;
this.executedId = executedId;
}

@Override
public String getNodeName() {
return nodeName;
}

@Override
public EvaluatorResult getEvaluatorResultResult() {
return evaluatorResult;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,9 @@ public static void fireAfterEvaluateConditional(DMNRuntimeEventManager eventMana
}
}

public static void fireAfterConditionalEvaluation(DMNRuntimeEventManager eventManager, EvaluatorResult evaluatorResult, String idExecuted) {
public static void fireAfterConditionalEvaluation(DMNRuntimeEventManager eventManager, String nodeName, EvaluatorResult evaluatorResult, String idExecuted) {
if( eventManager.hasListeners() ) {
AfterConditionalEvaluationEvent event = new AfterConditionalEvaluationEventImpl(evaluatorResult, idExecuted);
AfterConditionalEvaluationEvent event = new AfterConditionalEvaluationEventImpl(nodeName, evaluatorResult, idExecuted);
notifyListeners(eventManager, l -> l.afterConditionalEvaluation(event));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,14 @@ void fireAfterEvaluateConditional() {
@Test
void fireAfterConditionalEvaluation() {
EvaluatorResult evaluatorResult = mock(EvaluatorResult.class);
String name = "NAME";
String executedId = "EXECUTED_ID";
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManagerMock, evaluatorResult, executedId);
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManagerMock, name, evaluatorResult, executedId);
ArgumentCaptor<AfterConditionalEvaluationEvent> conditionalEvaluationEventArgumentCaptor = ArgumentCaptor.forClass(AfterConditionalEvaluationEvent.class);
verify(spiedListener).afterConditionalEvaluation (conditionalEvaluationEventArgumentCaptor.capture());
AfterConditionalEvaluationEvent evaluateConditionalEvent = conditionalEvaluationEventArgumentCaptor.getValue();
assertThat(evaluateConditionalEvent).isNotNull();
assertThat(evaluateConditionalEvent.getNodeName()).isEqualTo(name);
assertThat(evaluateConditionalEvent.getEvaluatorResultResult()).isEqualTo(evaluatorResult);
assertThat(evaluateConditionalEvent.getExecutedId()).isEqualTo(executedId);
}
Expand Down
Loading

0 comments on commit 49f5211

Please sign in to comment.