From 1400431fc3f0d36ba71961acdbf18b0199ba295e Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Thu, 12 May 2016 22:49:08 +0200 Subject: [PATCH] issue #39: add method to get registered listeners --- .../main/java/org/easyrules/api/RulesEngine.java | 8 ++++++++ .../org/easyrules/core/DefaultRulesEngine.java | 5 +++++ .../org/easyrules/core/DefaultRulesEngineTest.java | 14 ++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/easyrules-core/src/main/java/org/easyrules/api/RulesEngine.java b/easyrules-core/src/main/java/org/easyrules/api/RulesEngine.java index 41eb059..c6169fd 100644 --- a/easyrules-core/src/main/java/org/easyrules/api/RulesEngine.java +++ b/easyrules-core/src/main/java/org/easyrules/api/RulesEngine.java @@ -24,6 +24,7 @@ package org.easyrules.api; +import java.util.List; import java.util.Set; import org.easyrules.core.RulesEngineParameters; @@ -62,6 +63,13 @@ public interface RulesEngine { */ Set getRules(); + /** + * Return the list of registered rule listeners. + * + * @return the list of registered rule listeners + */ + List getRuleListeners(); + /** * Fire all registered rules. */ diff --git a/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java b/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java index a4093e7..f0f44c1 100644 --- a/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java +++ b/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java @@ -94,6 +94,11 @@ class DefaultRulesEngine implements RulesEngine { return rules; } + @Override + public List getRuleListeners() { + return ruleListeners; + } + @Override public void clearRules() { rules.clear(); diff --git a/easyrules-core/src/test/java/org/easyrules/core/DefaultRulesEngineTest.java b/easyrules-core/src/test/java/org/easyrules/core/DefaultRulesEngineTest.java index 09a939f..ecd7f5c 100644 --- a/easyrules-core/src/test/java/org/easyrules/core/DefaultRulesEngineTest.java +++ b/easyrules-core/src/test/java/org/easyrules/core/DefaultRulesEngineTest.java @@ -4,6 +4,7 @@ import org.easyrules.annotation.Action; import org.easyrules.annotation.Condition; import org.easyrules.annotation.Priority; import org.easyrules.annotation.Rule; +import org.easyrules.api.RuleListener; import org.easyrules.api.RulesEngine; import org.junit.After; import org.junit.Before; @@ -29,6 +30,9 @@ public class DefaultRulesEngineTest { @Mock private BasicRule rule, anotherRule; + @Mock + private RuleListener ruleListener; + private AnnotatedRule annotatedRule; private RulesEngine rulesEngine; @@ -124,6 +128,16 @@ public class DefaultRulesEngineTest { .containsExactly(rule, anotherRule); } + @Test + public void testGetRuleListeners() throws Exception { + rulesEngine = aNewRulesEngine() + .withRuleListener(ruleListener) + .build(); + + assertThat(rulesEngine.getRuleListeners()) + .containsExactly(ruleListener); + } + @After public void clearRules() { rulesEngine.clearRules();