issue #121 : apply the RulesEngineListener to check method

pull/130/merge
Mahmoud Ben Hassine 7 years ago
parent 14fe227c82
commit 40b456b670

@ -126,6 +126,7 @@ public final class DefaultRulesEngine implements RulesEngine {
@Override
public Map<Rule, Boolean> check(Rules rules, Facts facts) {
triggerListenersBeforeRules(rules, facts);
LOGGER.info("Checking rules");
Map<Rule, Boolean> result = new HashMap<>();
for (Rule rule : rules) {
@ -133,6 +134,7 @@ public final class DefaultRulesEngine implements RulesEngine {
result.put(rule, rule.evaluate(facts));
}
}
triggerListenersAfterRules(rules, facts);
return result;
}

@ -69,4 +69,22 @@ public class RulesEngineListenerTest extends AbstractTest {
inOrder.verify(rulesEngineListener2).afterExecute(rules, facts);
}
@Test
public void rulesEngineListenersShouldBeCalledInOrderWhenCheckingRules() throws Exception {
// Given
when(rule1.evaluate(facts)).thenReturn(true);
rules.register(rule1);
// When
rulesEngine.check(rules, facts);
// Then
InOrder inOrder = inOrder(rule1, fact1, fact2, rulesEngineListener1, rulesEngineListener2);
inOrder.verify(rulesEngineListener1).beforeEvaluate(rules, facts);
inOrder.verify(rulesEngineListener2).beforeEvaluate(rules, facts);
inOrder.verify(rule1).evaluate(facts);
inOrder.verify(rulesEngineListener1).afterExecute(rules, facts);
inOrder.verify(rulesEngineListener2).afterExecute(rules, facts);
}
}

Loading…
Cancel
Save